我有一个带有CPTScatterPlot的CPTXYGraph,我使用[graph reloadData]更新了新数据。我还根据数据设置了范围。我的问题是虽然轴在范围改变时更新很好,但网格线没有,所以我最终得到这个http://inky.ws/g/hw(在x轴的末端没有网格线)。
我设置了axis.gridLinesRange = nil,我尝试在更新范围时重新设置所有网格线属性,但无济于事。
为了澄清,原始图表看起来很好,但是当我使用更大的数据集进行更新时,添加的范围中缺少网格线。
答案 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;