强制网格线在iOS上Core-Plot散点图中的范围更改时更新

时间:2011-08-10 08:35:43

标签: ios core-plot

我有一个带有CPTScatterPlot的CPTXYGraph,我使用[graph reloadData]更新了新数据。我还根据数据设置了范围。我的问题是虽然轴在范围改变时更新很好,但网格线没有,所以我最终得到这个http://inky.ws/g/hw(在x轴的末端没有网格线)。

我设置了axis.gridLinesRange = nil,我尝试在更新范围时重新设置所有网格线属性,但无济于事。

为了澄清,原始图表看起来很好,但是当我使用更大的数据集进行更新时,添加的范围中缺少网格线。

1 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,并使用了以下解决方法:计算值的新边界,并使用plotRangeWithLocation:length:convenience方法替换默认的绘图空间范围。

在性能和概念上不太令人满意(感觉有点像做框架的工作)但它对我有用。

CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat([valuesMin floatValue]) length:CPTDecimalFromFloat([valuesMax floatValue]-[valuesMin floatValue])];


CPTXYAxisSet *axisSet = (CPTXYAxisSet *)graph.axisSet;    
CPTXYAxis *y = axisSet.yAxis;

float amplitude = ([valuesMax floatValue]-[valuesMin floatValue]);
NSDecimal intervalLength = CPTDecimalFromFloat(100);
y.majorIntervalLength = intervalLength;