1

グラフを作成しようとしていますが、x軸の10を底とする対数目盛で、範囲は1〜1000です。設計時に軸を作成できるようですが、フォームが読み込まれるたびに、「グラフ」というエラーメッセージが表示されます。エリア軸-この軸には対数目盛は使用できません。

これはMSChartコントロールの制限ですか?X軸に対数目盛を作成できないのはなぜですか?

4

4 に答える 4

4

これは、対数スケールの場合、値がゼロより大きくなければならないためです。Charting.CHart は、空のチャートをゼロで構成されているものとして扱います (私はそれが奇妙であることを知っています)。このエラーは、デバッグが非常に難しい場合があります。したがって、いずれかの軸が対数目盛の場合、グラフが空になることはありません。私が通常行うことは、軸を線形に設定し、グラフのプロットの直後に変更することです(対数スケールでゼロまたは負の値がないことを確認します)。また、軸をクリアしてプロットする前に、軸を線形に変更することを忘れないでください。これが誰かに役立つことを願っています。

于 2013-03-09T13:45:45.527 に答える
3

SuppressExceptions プロパティを使用して、いくつかの例外を無視できるようにすることを提案します。また、対数目盛の軸にゼロが接続されている例外もあります。データを操作する代わりに、これがそのような状況に最適なソリューションだと思います。

chart.SuppressExceptions = true;
于 2015-02-23T21:02:18.943 に答える
2

ゼロだけでなく、値を正しいデータ型にすることも重要です。チャートに DataTable からの値を設定するとします。タイプを指定していない場合、.NET はそれらが文字列であると自動的に想定するため、対数スケールをプロットできません。

データテーブルの仕様が不完全です:

        PP = New DataTable
        PP.Columns.Add("X-value")
        PP.Columns.Add("Y-value")

完全な仕様:

        PP = New DataTable
        PP.Columns.Add("X-value", Type.GetType("System.Double"))
        PP.Columns.Add("Y-value", Type.GetType("System.Double"))

最初の例では、例外がスローされます。2番目はそうではありません。

于 2016-08-24T11:11:27.340 に答える
0

すべてのチャート タイプが対数スケールをサポートしているわけではありません。グラフの種類を折れ線グラフなどに変更してみてください。

グラフの種類: http://msdn.microsoft.com/en-us/library/dd489233.aspx

ChartType プロパティ: http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.series.charttype.aspx

于 2013-03-05T07:50:24.087 に答える