CPTScatter绘图数据标签需要帮助

时间:2015-10-28 05:27:35

标签: objective-c macos core-plot

我从一开始就一直在使用核心情节,我发现它非常灵活且功能范围广,感谢这样一个让开发人员生活更轻松的精彩图书馆。

现在我遇到的问题是图表的数据标签。默认情况下,为每个数据点显示数据标签,我将其更改为仅显示第三个点(我的图表只有4个点,它们类似于(0,0),(2,34),(38,34),( 40,0))。 (参见附件)。所有四个点都有相同的数据标签,所以只显示第三个点,它正在显示,但我想让数据标签在第二个和第三个点之间。我已经尝试过添加layer.paddingRight / paddingLeft等但不能正常工作,即使是layer.position也无法正常工作。

对于我来说,对于数据标签的位置(x,y)看起来如何被核心图忽略,它总是围绕着这一点。如果需要,我们将非常感谢您的帮助。

另请注意,我没有使用CPTPlotSpaceAnnotation作为我用于悬停信息的内容。下面是dataLabelForPlot的代码:recordIndex:。将x和y从0 0更改为任何值都不起作用。

    CPTLayer *layer = [[CPTLayer alloc] initWithFrame:CGRectMake(0,0, 300, 25)];
CPTTextLayer * newLayer = [[CPTTextLayer alloc] initWithText:textToShow  style:whiteText] ;
[layer addSublayer:newLayer];
        return layer;

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您希望标签位于两个数据点之间,则绘图空间注释是正确的解决方案。您可以根据需要在图表上添加任意数量的注释。

如果您希望数据标签始终相对于其中一个数据点显示,请使用图表labelOffset进行定位。

也在Core Plot issue #239上回答。