グラフを作成しようとしていますが、x軸の10を底とする対数目盛で、範囲は1〜1000です。設計時に軸を作成できるようですが、フォームが読み込まれるたびに、「グラフ」というエラーメッセージが表示されます。エリア軸-この軸には対数目盛は使用できません。
これはMSChartコントロールの制限ですか?X軸に対数目盛を作成できないのはなぜですか?
これは、対数スケールの場合、値がゼロより大きくなければならないためです。Charting.CHart は、空のチャートをゼロで構成されているものとして扱います (私はそれが奇妙であることを知っています)。このエラーは、デバッグが非常に難しい場合があります。したがって、いずれかの軸が対数目盛の場合、グラフが空になることはありません。私が通常行うことは、軸を線形に設定し、グラフのプロットの直後に変更することです(対数スケールでゼロまたは負の値がないことを確認します)。また、軸をクリアしてプロットする前に、軸を線形に変更することを忘れないでください。これが誰かに役立つことを願っています。
SuppressExceptions プロパティを使用して、いくつかの例外を無視できるようにすることを提案します。また、対数目盛の軸にゼロが接続されている例外もあります。データを操作する代わりに、これがそのような状況に最適なソリューションだと思います。
chart.SuppressExceptions = true;
ゼロだけでなく、値を正しいデータ型にすることも重要です。チャートに 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番目はそうではありません。
すべてのチャート タイプが対数スケールをサポートしているわけではありません。グラフの種類を折れ線グラフなどに変更してみてください。
グラフの種類: 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