我正在使用CPTAxisLabelingPolicyAutomatic,它在标签和刻度上非常有用。我遇到的问题是用户放大太多,直到标签变得相同为止。例如。在Y轴上,我得到0,0,0,0,1,1,1,......
为了解决这个问题,我查看了YAxis的newRange.lengthDouble值
-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange*)newRange forCoordinate:(CPTCoordinate)coordinate;
并手动找出确切的情况。然后使用该值来限制收缩:
if (coordinate == CPTCoordinateY) {
//to avoid having e.g. 3,3,3... on all ticks on Y axis
if (newRange.lengthDouble < 7){
return [(CPTXYPlotSpace*)space yRange];
}
}
此特定值似乎取决于图表容器的大小和绘制的数字范围。你是否看到/之间有任何腐蚀,所以我们可以避免这个问题。
提前致谢。
答案 0 :(得分:0)
这是一个合理的解决方案。其他替代方法包括更改标签格式器以显示小数点后的数字或切换到相等的分区标签策略。