24

実行時に入力する.NETチャートがあります

レポート内にグラフが表示されます。レポートの各バンドについて、すべてのシリーズをクリアし、コードを使用してそれらを再度追加します

            Series s = new Series();
            s.Font = new Font("Verdana", 8f);                

            int i = 0;
            foreach (var month in line.Months)
            {
                DataPoint p = new DataPoint();

                p.XValue = i;
                p.YValues = new Double[] { month.LineValue ?? 0 };
                s.Points.Add(p);

                i++;
            }

グラフに 2 回目の入力を行うと、Y 軸の最大値は 2000 のままです。つまり、再計算されません。

再計算を強制するにはどうすればよいですか?

Y 軸で ScaleBreakStyle を有効にしています

Y 軸で IsLogarithmic を true に設定しようとすると、グラフではなく X が表示されます

System.Windows.forms.DataVisualization.Charting.Chart で Visual Studio 2010 を使用しています。

ポール

4

4 に答える 4

50

chart.ChartAreas[0].RecalculateAxesScale();

于 2013-03-05T15:11:41.750 に答える
14

ドキュメントには、プロパティのデフォルトAxis.Maximumは NaN (数値ではない) であると記載されているため、その値に戻すことで自動スケーリング機能を再度有効にできるはずです

このようなもの...

chart.ChartAreas[0].AxisY.Maximum = Double.NaN;

更新・訂正

アントンの答えは正しいです。あなたが使用する必要があります:

ChartArea.RecalculateAxesScale();

ドキュメントRecalculateAxesScale()よると:

... チャートが正しく表示されるように、チャート エリアのプロパティを再計算する必要がある場合があります。たとえば、軸の範囲が変更された場合、その軸のラベルを再計算する必要があります。

どうやら、.NET 4.0 以降で利用可能です。

于 2012-05-15T03:35:38.643 に答える
5

このシーケンスを実行する必要があります:

AxisY.Maximum = Double.NaN; // sets the Maximum to NaN
AxisY.Minimum = Double.NaN; // sets the Minimum to NaN
enter code herechart.ChartAreas[0].RecalculateAxesScale(); // recalculates the Maximum and Minimum values, since they are set to NaN
于 2016-08-03T18:00:13.700 に答える