我正在使用CorePlot绘制一组数据。我的x轴数据由日期组成,而y轴数据由浮点数组成(我将其转换为NSNumber)。我从一个源中获取数据,该源返回带有大量小数的数字,例如:0.46673718852844、4.59392222219、353.1293012045。 我正在使用以下代码对y轴进行适当的格式化:
NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:3];
[numberFormatter setPositiveFormat:@"###0.000"];
CPTXYAxis *y = axisSet.yAxis;
y.labelingPolicy = CPTAxisLabelingPolicyAutomatic;
y.minorTicksPerInterval = 1;
y.preferredNumberOfMajorTicks = 5;
y.labelFormatter = numberFormatter;
在大多数情况下,一切都运作良好。然而,有时它会在轴上的多个位置显示相同的值。请参见下面的图片:
![enter image description here](https://istack.dev59.com/uu0MS.webp)
numberForPlot
方法中将数字四舍五入到3位小数:if(fieldEnum == CPTScatterPlotFieldY)
{
float floatNum = r.value;
floatNum *= 1000;
int intValue = (int) floatNum;
float decimal = floatNum - intValue;
if (decimal > 0.5) {
intValue++;
}
floatNum = intValue /1000.0;
return [NSNumber numberWithFloat:floatNum];
}
但标签没有任何区别。