2

チャート

MVC3ビューでMSチャートで生成された画像を使用しています。

グラフは機能しますが、グラフの上部にある最大値が高すぎて、値を読み取ることができません。

グラフには最大値からのマージンが必要ではありませんか?

これが実際の問題かどうかはよくわかりませんが、動的な値で使用すべきではないと思われる AxisYMaximum 値を定義しない限り、見栄えを良くすることはできません。

4

1 に答える 1

4

はい、グラフ コントロールはデータを明確に表示するために必要なマージン計算する必要がありますが、私の経験ではそうではありません。

y 値は動的であるため、表示されている最大の y 値のすぐ上の値に AxisYMaximum を動的に設定できます。このようなものはそれを設定できます:

double greatestYValue = double.MinValue;

foreach (var pt in Chart1.Series[0].Points) 
{
    if (greatestYValue < pt.YValues[0]) greatestYValue = pt.YValues[0];
}

Chart1.ChartAreas[0].AxisY.Maximum = greatestYValue * 1.2;
// or
Chart1.ChartAreas[0].AxisY.Maximum = greatestYValue + 20;

最初のシリーズのすべてのポイントをループして最大の y 値を見つけ、次に y 軸の最大値をその値の 120%、またはその値を超える絶対量、または必要なものに設定しました。

LINQ を使用して、ワンライナーで最大の y 値を取得することもできます。

double greatestYValue = Chart1.Series[0].Points.Select(p => p.YValues[0]).Max();
于 2012-07-24T13:22:00.520 に答える