2

Zedgraph (asp.net) を使用します。日時 x ポイントに基づく棒グラフがあります。最初のバーにはラベルがありません。最初のラベルは、最初の日のポイントの前日に対応する y 軸にあります。私はこれについてあまり心配していません。ただし、2 番目のラベルは 2 番目のバーにあります。ラベルを付けるには最初のバーが必要です。MyPane.XAxis.Scale.IsSkipFirstLabel = false があります。

最初のバーにラベルを付けるにはどうすればよいですか? ZedGraph がそこにラベルを付けないのはなぜですか?

添加:

Y 軸の下に 5/19 ではなく、最初のバーに '5/20' を表示したい。5/19のエントリーすらありません。

代替テキスト http://i50.tinypic.com/29ogx0n_th.gif

4

1 に答える 1

2

OK、それがまさにあなたが必要としているものかどうかはわかりませんが、

まず、スケール範囲を手動で調整します。

zg1.MasterPane[0].XAxis.Scale.Min = (double)new XDate(2010, 05, 19);
zg1.MasterPane[0].XAxis.Scale.Max = (double)new XDate(2010, 05,30);

これにより、スケールの範囲がデータの 1 日前と 1 日後に表示されるように設定されます (これは余分なスペースを確保するために必要です)。

次に、ステップを設定します。

 zg1.MasterPane[0].XAxis.Scale.MajorStep = 1;
 zg1.MasterPane[0].XAxis.Scale.FontSpec.Angle = 90f;

これにより、毎日 1 つのラベルが作成されます。実際、表示されるラベルを多かれ少なかれ制御するには、これが唯一の方法です。ラベルの角度も変更しました (通常の位置では重なります)。
ただし、最初と最後の余分な日 (余白) のラベルも作成されます。したがって、これら 2 つのエントリを無効にする必要があります (範囲を手動で設定したため、これで機能します)。

 zg1.MasterPane[0].XAxis.Scale.IsSkipFirstLabel = true;
 zg1.MasterPane[0].XAxis.Scale.IsSkipLastLabel = true;

この最初と最後の余分なラベルを無効にして、残りを ZedGraph に任せたい場合は、2 番目の手順を省略してください。しかし、結果が予測できない場合もあります。

于 2010-06-20T18:18:01.437 に答える