C#

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で調べ、差分をで計算時間を求めます。

エラー対策

現在のコンテキストに'Initialize Component'という名前は存在しません。

こちらのブログにまとめています。

Plotの作成

Oxyplot(Silverlight)

・Xamlの設定

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を使用した計算ツールは、以下のリンクにアップしています(インターネットエクスプローラーでお試しください)。

  • 常微分計算ツール(Silverlight)
  • ・対数軸のの設定

    Oxyplotでは対数軸の設定を行うことも可能です。一例としてBakerのFlow pattern map表示を行った例を以下示します。

    FlowPatternMap

    当サイトに不具合、ご意見等ございましたらCEsolutionにお知らせください。

    Page Top