2

iOS用に開発された忍チャートに慣れようとしています。同じ試用版をダウンロードし、それを使用していくつかのサンプルチャートをプロットしようとしました. チャートは、デモ アプリでかなりよく見えます。しかし、クラス SChartColumnSeries を使用して棒グラフをプロットしているときに、グラフのプロットに使用できるフレームに応じてバーの幅が調整されることに気付きました。存在するバーの数に関係なく固定(たとえば20ピクセル)したいのですが、必要な幅が割り当てられている幅よりも大きい場合(フレームをチャートに割り当てている間)、チャートの一部のみが表示され、ユーザーはスクロールできます残りのバーを表示するチャート (これは Core Plot で可能です)。忍チャートを使用してこれを達成するにはどうすればよいですか?

4

1 に答える 1

1

これは Shinobi で可能ですが、固定幅プロパティを設定する単純なケースではありません。私はこれをやろうとしましたが、それほど複雑ではありません!

私のアドバイスは、次のようにチャートを設定することです。

chart = [[ShinobiChart alloc] initWithFrame:self.view.bounds];
[chart setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth];
[chart setDatasource:d];

[chart setXAxis:[SChartNumberAxis new]];
[chart setYAxis:[SChartNumberAxis new]];
[[chart xAxis] setEnableGesturePanning:YES];
[[chart xAxis] setEnableGestureZooming:NO];

[chart.xAxis setDefaultRange:[[SChartNumberRange alloc] initWithMinimum:@5 andMaximum:@10]];

最も重要な部分は最後の 3 行です。ズームをオフにすると、グラフのズーム レベルが固定されます。つまり、バーは同じ幅のままになります。パンニングをオンにして、ユーザーがスクロールして別のバーを表示できるようにすることができます。

最後の行は、デフォルトの範囲を設定します。ここでは、5 から 10 の間の値に設定しました。これは、グラフが x 軸に沿って 5 から 10 の間の値を表示することを意味します。

上記を実行すると、列の幅が固定されます。デフォルトの範囲を何に設定する必要があるかを調べるために、データ ポイントの数に応じて、微調整や計算が必要になる場合があります。たとえば、それらが可変である場合は、データポイントの数、列間のパディングと列間のパディング、および使用可能なピクセル数を考慮する必要があります)。

これはかなり単純化された答えだと思いますが、良い出発点になるはずです!

于 2013-03-14T11:07:52.103 に答える