【问题标题】:Get x,y values for a data point from plot从图中获取数据点的 x,y 值
【发布时间】:2014-09-20 09:59:47
【问题描述】:

如何获取绘图上可见的数据点(符号)的 x,y 值?

http://i.stack.imgur.com/rGCRU.png

我尝试使用CPTPlotSpaceDelegate 方法:- (void)plotSpace:(CPTPlotSpace *)space didChangePlotRangeForCoordinate:(CPTCoordinate)coordinate,但我无法为 x,y 轴获得正确的值。到目前为止,我做到了这一点

- (void)plotSpace:(CPTPlotSpace *)space didChangePlotRangeForCoordinate:(CPTCoordinate)coordinate
{
    CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)space;
    NSLog(@"x= %f", plotSpace.xRange.locationDouble);
    NSLog(@"y= %f", plotSpace.yRange.locationDouble);

    // If point is in the middle of plot, save it's yRange value
    if (plotSpace.xRange.locationDouble == mPlotSpace.xRange.midPointDouble) {
        mSelectedPoint = plotSpace.yRange.locationDouble;
    }

    [mLinePlot reloadData];

}

但是没有一个 NSLog 打印正确的值。

【问题讨论】:

  • 在更改为xRangeyRange 后,您正在记录绘图空间的新起始位置(检查coordinate 参数以查看更改了哪一个)。从问题中不清楚您正在寻找什么 x 和 y 值。
  • @EricSkroch 看图可能会更清晰
  • 您想要其中一个数据点的坐标吗?作为数据值还是在视图坐标中?哪个数据点?
  • @EricSkroch 是的,我需要 VISIBLE 数据点的坐标作为数据值

标签: objective-c xcode ios7 core-plot


【解决方案1】:

绘图范围具有检查给定值是否在范围内的方法:

-(BOOL)contains:(NSDecimal)number;
-(BOOL)containsDouble:(double)number;
-(BOOL)containsNumber:(NSNumber *)number;

xRangeyRange 上使用其中一种方法来检查每个数据点。如果一个点通过了两个测试,则它是可见的。否则,它在可见的绘图区域之外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-23
    • 1970-01-01
    • 2018-03-17
    • 2022-11-13
    • 2019-05-04
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多