Core Plot - 绘图标签的小数位数

时间:2013-05-22 08:17:58

标签: iphone ios xcode core-plot

我试图在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;

以下是该应用的屏幕截图: enter image description here

它显示的图标签为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个小数位?我在代码中遗漏了什么吗?请帮忙。

1 个答案:

答案 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;