我试图在iPhone App中使用Core plot绘制内存使用情况。我希望图中的标签显示六个小数位,但它只显示四个,尽管使用下面的代码片段编码显示6:
CPTScatterPlot *plotMem = [[CPTScatterPlot alloc] initWithFrame:self.graph.bounds];
NSNumberFormatter *plotFormatter = [[NSNumberFormatter alloc] init];
[plotFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[plotFormatter setMaximumFractionDigits:6];
[plotFormatter setPositiveFormat:@"###0.000000"];
plotMem.labelFormatter = plotFormatter;
以下是该应用的屏幕截图:
它显示的图标签为0.1623,0.1624等,尽管numberForPlot方法返回的数字如0.161793,0.161869,0.162064等。
-(NSNumber *) numberForPlot:(CPTPlot *)plot
field:(NSUInteger)fieldEnum
recordIndex:(NSUInteger)index {
if ( fieldEnum == CPTScatterPlotFieldY ) {
NSLog(@"Plot memuse %f for index %d",
myData.memuse, index);
return [NSNumber numberWithFloat:myData.memuse];
} else {
return [NSNumber numberWithInt:index];
}
}
如何使图表的标签显示6个小数位?我在代码中遗漏了什么吗?请帮忙。
答案 0 :(得分:1)
尝试使用setFormatWidth
CPTScatterPlot *plotMem = [[CPTScatterPlot alloc] initWithFrame:self.graph.bounds];
NSNumberFormatter *plotFormatter = [[NSNumberFormatter alloc] init];
[plotFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[plotFormatterr setFormatWidth:8];
[plotFormatter setMaximumFractionDigits:6];
[plotFormatter setPositiveFormat:@"###0.000000"];
plotMem.labelFormatter = plotFormatter;