【发布时间】:2011-11-07 20:34:21
【问题描述】:
我正在使用 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;
在大多数情况下,一切正常。但是,有时它会在沿轴的多个位置显示相同的值。见下图:
值显示正确,我只是想避免不必要的 (0.466) 标签。我什至尝试在numberForPlot 方法中将数字四舍五入为小数点后三位:
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];
}
但标签没有区别。
【问题讨论】: