我正在使用coreplot根据附件图像在我的移动应用程序上呈现图形。我的问题是图表有时不能很好地适应y轴标签。从图中可以看出,最大y轴标签是3500.0但是两个图形绘图点中的实际y轴最大值仅为2498.这导致从图形最大点到y轴的空间浪费标签的最大点从而缩小了我的图表。我的所有图表都没有这种情况,只有少数图表。理想情况下,我希望y轴最大标签设置为3000.或者甚至更好,如果有办法让最大的y轴标签显示为2498而不是3500,这将是美妙的。
以下是我设置y轴范围的方法:
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yMin) length:CPTDecimalFromFloat(yMax)];
ymin = 1159.000000 and ymax = 2498.000000 //For this example
我试图使用" scaletoFitPlots"但是徒劳无功我只想要正确烫伤y轴标签而不是x轴标签。我还提到了堆栈溢出的几个线程,比如这个 - CorePlot - Set y-Axis range to include all data points但是徒劳无功:(。我真的很感激这里有一些帮助。
如果您看到最后两个图形,其中一个完全位于y轴的主要网格线内,而另一个不在其中,即最大y轴标签为200000.0并且最大值为绘图高于那个。有没有办法让我的所有图形都落在y轴标签最大值的主网格线内?
答案 0 :(得分:1)
使用起始位置和长度指定绘图范围。您的范围从1,159到3,657(1,159 + 2,498)。给定最小值和最大值,范围的长度应为(max - min)。
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yMin)
length:CPTDecimalFromFloat(yMax - yMin)];
刻度线和标签位置由轴标签政策控制。如果您不关心标签是什么,但希望它们位于轴的极端,请使用CPTAxisLabelingPolicyEqualDivisions
标签政策。如果您始终希望标签为“漂亮”数字,请将绘图范围扩展到最小和最大数据值以外的最接近的“漂亮”值。对于上面的示例(1,159到2,498),您可以选择1,000的起始位置和1,500的长度。