簡體   English   中英

iOS CorePlot y軸的數字格式

[英]iOS CorePlot numeric formatting of y-axis

我正在使用Core Plot 1.1在iOS6中繪制一個簡單的散點圖。 我正在使用以下代碼正確格式化我的y軸,然后將其動態縮放到繪圖數據。

CPTXYAxis *y = axisSet.yAxis;
y.labelingPolicy              = CPTAxisLabelingPolicyAutomatic;
y.minorTicksPerInterval       = 3;
y.preferredNumberOfMajorTicks = 6;
y.majorGridLineStyle          = majorGridLineStyle;
y.minorGridLineStyle          = minorGridLineStyle;

...

NSNumberFormatter * yformatter =  [[NSNumberFormatter alloc] init];
[yformatter setUsesSignificantDigits:YES];
[yformatter setMaximumSignificantDigits:4];
[yformatter setMaximumFractionDigits:1];
[yformatter setRoundingMode:NSNumberFormatterRoundCeiling];
y.labelFormatter = yformatter;

然后,我根據要使用maxPlotValue繪制的數據動態更改范圍,但將其限制為最小值。

plotSpace.xRange = [CPTPlotRange
                    plotRangeWithLocation:CPTDecimalFromFloat(0)
                    length:CPTDecimalFromFloat(5)];
plotSpace.yRange = [CPTPlotRange
                    plotRangeWithLocation:CPTDecimalFromFloat(0)
                    length:CPTDecimalFromFloat(maxPlotValue)];

在大多數情況下,這種方法效果很好,但有時會出現奇怪的格式錯誤,如下圖1所示,其中顯示的是0.6001而不是0.6。 如果我手動將最小范圍更改為2,錯誤消失。

我使用4個有效數字的原因是,我可以擁有最多8000個數字,然后顯示時不帶小數。 如果我將setMaximumSignificantDigits更改為3,則得到0.601,我猜這表明問題出在CPTAxisLabelingPolicyAutomatic。

任何幫助,將不勝感激。

圖1,格式錯誤: https : //dl.dropbox.com/u/8083213/fig_1.png

圖2,格式化沒有錯誤: https : //dl.dropbox.com/u/8083213/fig_2.png

這聽起來像是標簽計算中的舍入錯誤。 請在Core Plot 問題跟蹤器上報告它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM