C#の基本を紹介します。
1次元配列(配列サイズのみ指定)
public static double[] x = new Double[3]
1次元、2次元の配列指定
public static double[] a = new Double[] { 0, 1, 2 }
Double[,] b = new Double[,] { { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 } }
配列の要素数の取得
a.Length
計算時間の確認
ちょっと古い記事ですが、私はこちらのリンクの方法を参考にしています。
計算開始、停止時間をDateTime.Nowで調べ、差分をで計算時間を求めます。
こちらのブログにまとめています。
Xamlファイル側は、名前空間を設定し、PlotViewを設置するだけです。
詳細なPlotViewの中身はC#側で設定していきます。(Xamlファイルで設定する場合は、こちらのブログが参考になります。)
名前空間の設定
xmlns:oxy="clr-namespace:OxyPlot.Silverlight;assembly=OxyPlot.Silverlight"
PlotViewの設定
<oxy:PlotView x:Name="plt"/>
・C#の設定
usingディレクティブ
using OxyPlot;
using OxyPlot.Axes;
using OxyPlot.Series;
plotエリアの設定
var plotModel = new PlotModel();
//Titleの設定
plotMode.Title = "ODE calculation";
//Sub Titleの設定
plotMode.Subtitle = "Implicit vs Explicit";
//Plot Areaの背景色設定
plotMode.PlotAreaBackground = OxyColors.LightYellow;
※OxyColorsについて
色の指定は、OxyColors.色、あるいはOxyColor.FromRgb(x, y, z)といった形式で指定できます。
ex)透明:OxyColors.Tranparent、黒:OxyColors.Black。
凡例の設定
//凡例の位置設定
plotMode.LegendPosition = LegendPosition.TopCenter;
//凡例の色設定
plotMode.LegendBackground = OxyColors.White;
//凡例の境界線の色設定
plotMode.LegendBorder = OxyColors.Black;
軸の設定
//軸の定義
var linearAxis1 = new LinearAxis();
//x軸の定義(x軸のポジション:ボトム)
linearAxis1.Position = AxisPosition.Bottom;
//x軸の色:黒
linearAxis1.AxislineColor = OxyColors.Black;
//x軸のタイトル
linearAxis1.Title = "time[sec]";
//x軸のタイトルの色
linearAxis1.TitleColor = OxyColors.Black;
//x軸の目盛り線スタイル:Solid
linearAxis1.MajorGridlineStyle = LineStyle.Solid;
//x軸の目盛り線の色:Gray
linearAxis1.MajorGridlineColor = OxyColors.Gray;
//x軸の目盛り線の太さ:1
linearAxis1.MajorGridlineThickness = 1;
//x軸の補助目盛線のスタイル:長破線
linearAxis1.MinorGridlineStyle = LineStyle.LongDash;
//x軸の補助目盛線の色:Gray
linearAxis1.MinorGridlineColor = OxyColors.Gray;
//x軸の補助目盛り線の太さ:1
linearAxis1.MinorGridlineThickness = 0.5;
//作成した軸をplotoModelに戻します。
plotModel.Axes.Add(linearAxis1);
y軸も同様に設定します
plotするデータの設定
//陰解法のプロットデータ(LineSeries)
var lineSeriesImp = new LineSeries();
//登録データのタイトル設定
lineSeriesImp.Title = "Implicie euler(陰解法)";
//プロット線のスタイル:点線
lineSeriesImp.LineStyle = LineStyle.Dash;
//プロット線の色設定:青
lineSeriesImp.Color = OxyColors.Blue;
cd)scatterseriesをプロットする場合のオプション
//マーカーのタイプ
scatterSeries1.MarkerType = MarkerType.Circle;
//マーカーの塗りつぶし
scatterSeries1.MarkerFill = OxyColors.Blue;
プロットラインにデータを登録
lineSeriesImp.Points.Add(new DataPoint(Math.Round(t[i], 3), Math.Round(XI[i], 4)));
プロットモデルにプロットラインを登録
plotModel.Series.Add(lineSeriesImp);
最後に、軸データ、プロットデータを全て登録したプロットモデルをXamlで設定したビューモデルに渡してやります。
plt.Model = plotModel;
最終的に全て反映したグラフは以下のようになります。
上記Oxyplotを使用した計算ツールは、以下のリンクにアップしています(インターネットエクスプローラーでお試しください)。
Oxyplotでは対数軸の設定を行うことも可能です。一例としてBakerのFlow pattern map表示を行った例を以下示します。
当サイトに不具合、ご意見等ございましたらCEsolutionにお知らせください。