NPlot で値の表示範囲を設定する方法
割と基本的なことだとは思いますが、意識せずにプログラミングすると
嵌る恐れがある(というか、嵌りました)ので、やり方をメモします。
嵌る恐れがある(というか、嵌りました)ので、やり方をメモします。
表示範囲を指定してグラフを描画したいときは、XAxis 及び YAxis の
WorldMax, WorldMin にそれぞれの値を設定すればよいです。
なので、例えば横軸の範囲を0以上60以下、縦軸の範囲を30以上100以下
とした折れ線グラフlinePlot1 を plotSurface2D1 に表示したい時は
WorldMax, WorldMin にそれぞれの値を設定すればよいです。
なので、例えば横軸の範囲を0以上60以下、縦軸の範囲を30以上100以下
とした折れ線グラフlinePlot1 を plotSurface2D1 に表示したい時は
// plotSurface2D1 は NPlot.Windows.PlotSurface2D クラスのオブジェクト。
// (GUIデザイナで貼り付けられるオブジェクト)
InitializeComponent();
// (GUIデザイナで貼り付けられるオブジェクト)
InitializeComponent();
NPlot.LinePlot linePlot1 = new NPlot.LinePlot();
// 横軸
plotSurface2D1.XAxis1.WorldMin = 0; // (1)
plotSurface2D1.XAxis1.WorldMax = 60;
plotSurface2D1.XAxis1.WorldMin = 0; // (1)
plotSurface2D1.XAxis1.WorldMax = 60;
// 縦軸
plotSurface2D1.YAxis1.WorldMin = 30;
plotSurface2D1.YAxis1.WorldMax = 100;
plotSurface2D1.YAxis1.WorldMin = 30;
plotSurface2D1.YAxis1.WorldMax = 100;
plotSurface2D1.Add(linePlot1); // (2)
plotSurface2D1.Refresh();
plotSurface2D1.Refresh();
とすれば… 動きませんorz。 (1)の行で NullReferenceException
が発生してしまいます。XAxis1、YAxis1が、InitializeComponent()
メソッド終了時にはまだ作成されていないことが原因です。
(2)のメソッドの中でそれぞれの軸のオブジェクトがが作成されるよう
なので、一番簡単な解決方法は、
が発生してしまいます。XAxis1、YAxis1が、InitializeComponent()
メソッド終了時にはまだ作成されていないことが原因です。
(2)のメソッドの中でそれぞれの軸のオブジェクトがが作成されるよう
なので、一番簡単な解決方法は、
NPlot.LinePlot linePlot1 = new NPlot.LinePlot();
plotSurface2D1.Add(linePlot1); // (2)
// 横軸
plotSurface2D1.XAxis1.WorldMin = 0; // (1)
plotSurface2D1.XAxis1.WorldMax = 60;
plotSurface2D1.XAxis1.WorldMin = 0; // (1)
plotSurface2D1.XAxis1.WorldMax = 60;
// 縦軸
plotSurface2D1.YAxis1.WorldMin = 30;
plotSurface2D1.YAxis1.WorldMax = 100;
plotSurface2D1.YAxis1.WorldMin = 30;
plotSurface2D1.YAxis1.WorldMax = 100;
plotSurface2D1.Refresh();
このように、(1)より先に(2)の処理をやってしまえばよいかと
思います。
軸の設定を細かく行いたい、または、軸の設定を使い回したいと
いった場合は、
思います。
軸の設定を細かく行いたい、または、軸の設定を使い回したいと
いった場合は、
NPlot.LinePlot linePlot1 = new NPlot.LinePlot();
NPlot.Axis xAxis = linePlot1.SuggestXAxis();
NPlot.Axis yAxis = linePlot1.SuggestYAxis();
NPlot.Axis yAxis = linePlot1.SuggestYAxis();
// このあたりで xAxis や yAxis を色々設定する。
plotSurface2D1.XAxis1 = xAxis;
plotSurface2D1.YAxis1 = yAxis;
plotSurface2D1.YAxis1 = yAxis;
plotSurface2D1.Add(linePlot1);
plotSurface2D1.Refresh();
plotSurface2D1.Refresh();
このようにしてもよさそうです。
当記事に関する感想、疑問などありましたら、どしどし書き込んで下さい。
関連
- NPlot で値の表示範囲を設定する方法
- NPlot でマーカー付き折れ線グラフを使いたい!
- NPlot にPDF出力機能を追加しました
- グラフ作成ライブラリNPlot
関連
- NPlot で値の表示範囲を設定する方法
- NPlot でマーカー付き折れ線グラフを使いたい!
- NPlot にPDF出力機能を追加しました
- グラフ作成ライブラリNPlot