CorePlotを使用してデータセットをグラフ化しています。私のx軸のデータは日付で構成され、y軸のデータは浮動小数点数(NSNumberに変換されます)で構成されます。私はフィードからデータを取得しています。フィードは、例えば、0.46673718852844、4.59392222219、353.1293012045のように多数の小数を返します。 私は適切にy軸をフォーマットするために次のコードを使用しています:iPhone CorePlot 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
方法で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];
}
が、ラベルに違いはありません。
というのは、これが私のアプリケーションの唯一のグラフではなく、5ティックが通常最もよく見えるということです。数字のあるものと同じもの - 通常は3つで十分であり、4桁を表示する必要はありません。ああ、私はグラフのいくつかの手動設定を行う必要がありますね。とにかくありがとう – Maggie
私の解決策は、軸の範囲に応じて動的にティックの数を変更することでした。 – Jackson