IOS Core绘制如何获得最小Y轴值的最近可能值

时间:2015-11-16 19:22:19

标签: ios objective-c graph core-plot

我使用下面的代码来计算YAxis值的范围:

plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(yLow_NBH)
                                                length:CPTDecimalFromFloat(yHigh_NBH - yLow_NBH )];
axisSet.yAxis.preferredNumberOfMajorTicks = 4.0;
axisSet.yAxis.labelingPolicy = CPTAxisLabelingPolicyEqualDivisions;

我希望图形从Y最小值的最佳可能最近值开始Y轴。例如,如果Ymin是5000并且两个值之间的间隔是500那么yAxis应该从4500,5000,5500开始,依此类推。

提前致谢

如果Ymin是9000

,我需要图表作为第二张图像

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,我会坚持使用默认标签政策CPTAxisLabelingPolicyFixedInterval。您可以在确定首选绘图范围时选择majorIntervalLength,并确保刻度位置将落在所需的值。

了解Core Plot如何使用CPTAxisLabelingPolicyAutomatic标签政策确定刻度线位置(请参阅this method)。您可以使用相同的算法找到最佳的滴答间隔,然后将该范围的起始位置和长度调整为甚至是滴答间隔的倍数。请注意,Core Plot使用十进制值进行所有数学运算,因此它可以保持非常大且非常小的值。如果您知道数据总是在不会导致数字准确性问题的范围内,则可以使用double值来简化代码。