CorePlot:如何将绘图点添加到CurvedScatterPlot?

时间:2015-12-17 16:05:02

标签: ios objective-c core-plot

我现在第一次使用CorePlot用于图表。我的图表显示正常。一切都好了。我正在搜索,但我找不到这个问题的答案:如何用绘图点在我的图表上标记最大和最小点,以及如何在该点之上或之下显示该值?我不想展示每一点的价值。我已经看到一些评论使用它:

-(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index

但如何使用那个东西?

编辑:我已使用CPTPlotSymbol添加了绘图点。问题是,我想仅为两个值添加CPTPlotSymbol。怎么做?

2 个答案:

答案 0 :(得分:2)

在准备情节时,查找并存储最小/最大点的指数:

NSUInteger indexOfMin = ...
NSUInteger indexOfMax = ...

然后在-dataLabelForPlot:recordIndex:

-(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot recordIndex:(NSUInteger)index {
    if (plot.identifier == yourPlotID) // optional if you only have one plot
    {
        if (index == indexOfMin)
        {
            return [[CPTTextLayer alloc] initWithText:@"Your Min Label"];
        }
        else if (index == indexOfMax)
        {
            return [[CPTTextLayer alloc] initWithText:@"Your Max Label"];
        }
    }
    return  nil;
}

答案 1 :(得分:1)

您可以在散点图上的每个点上绘制不同的绘图符号。实现-symbolForScatterPlot:recordIndex:数据源方法并为每个数据索引返回适当的符号。如果您不想在该索引处使用符号,请返回[NSNull null]。返回nil以使用该索引处的情节plotSymbol