核心图 CPTBarPlotFieldBarLocation 和 CPTBarPlotFieldBarTip 的区别?

发布于 2024-11-25 03:04:23 字数 201 浏览 0 评论 0 原文

我是核心图新手,想知道 CPTBarPlotFieldBarLocation 和 CPTBarPlotFieldBarTip 之间有什么区别。我一直在查看核心图示例 CPTTestApp_ipadViewController ,我发现这两个字段枚举在使用 numberForPlot 方法填充策略期间被调用,但我没有了解其中的区别。

感谢您的帮助

I'm new to core plot and wondering what the difference is on CPTBarPlotFieldBarLocation and CPTBarPlotFieldBarTip. I have been looking at the core plot example CPTTestApp_ipadViewController and I have seen that both of these field enum are called during filling the ploy with the numberForPlot-method but I don't understand the difference.

Thanks for any help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

菊凝晚露 2024-12-02 03:04:23

差别是非常巨大的。如果我们查看 CPTBarPlotCPTBarPlotField 类型的定义,我们将看到该枚举中有三个值:

  1. CPTBarPlotFieldBarLocationBar 位置在独立坐标轴上。
  2. CPTBarPlotFieldBarTip条形提示值。
  3. CPTBarPlotFieldBarBaseBar base(仅当 barBasesVary 为 YES 时才使用)。

您可能会问 - 我可以在哪里使用该值?好的,您应该在方法 -(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 中使用此常量。在该方法中,您应该返回每个单独柱的该属性的值。例如,

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{       
    int plotIndex = [(NSNumber *)plot.identifier intValue];
    return [[[datas objectAtIndex:plotIndex] objectAtIndex:index] valueForKey:(fieldEnum == CPTBarPlotFieldBarLocation ? @"x" : @"y")];
}

在我的示例中,我有一个字典,其中包含 x 轴(条形位置)和 y (条形值)的值。

我想提一下,您不应该设置 CPTBarPlot *plot 的属性 plotRange ,否则 CorePlot 将自动设置条形图的位置(在位置0,1,2,3,4....)。

The difference is very huge. If we look at definition of type CPTBarPlotField in CPTBarPlot we will see that there are three values in that enum:

  1. CPTBarPlotFieldBarLocation : Bar location on independent coordinate axis.
  2. CPTBarPlotFieldBarTip : Bar tip value.
  3. CPTBarPlotFieldBarBase : Bar base (used only if barBasesVary is YES).

You can ask - where can I use that values? Ok, you should use this constants in method -(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index. In that method you should return values of that properties for each individual bar. For example,

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{       
    int plotIndex = [(NSNumber *)plot.identifier intValue];
    return [[[datas objectAtIndex:plotIndex] objectAtIndex:index] valueForKey:(fieldEnum == CPTBarPlotFieldBarLocation ? @"x" : @"y")];
}

In my example I have dictionary which contains values for x axis (locations of bars) and y (values of bars).

I want to mention, that you should not set property plotRange of your CPTBarPlot *plot or CorePlot will set locations of your bars automatically (at position 0,1,2,3,4....).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文