このチュートリアルでは、1 つのチャートに複数のチャンネルを表示して、チャートが画面の端に到達した際、自動でスクロールを開始するスクロール チャートの作成方法を紹介します。
このチュートリアルでは、新規の WPF プロジェクトで線系列を使用したチャートを初期化し、自動破棄設定で古いスクロール データを削除することでメモリのリセットが必要ないスクロール チャートの生成方法を紹介します。
新規の WPF プロジェクトを作成します。
※ 今回のアプリ開発では、バインド不可の LightningChart .NET を使用します。XAML ウィンドウでチャートに名前を付け、サイズ属性を削除します。
// サイズ変更と名前の追加 <lcu:LightningChartUltimate Content="LightningChartUltimate" Name="chart1">コード エディターで using 構文を追加します。
// Arction の using 構文を追加 using Arction.Wpf.Charting; using Arction.Wpf.Charting.SeriesXY; using Arction.Wpf.Charting.Views; using Arction.Wpf.Charting.Views.ViewsXY; using Arction.Wpf.Charting.Axes;チャートを参照して、初期化します。
// チャートを初期化 public MainWindow() { InitializeComponent(); IniChart(); } // 参照 void IniChart() { chart1.BeginUpdate(); ViewXY view = chart1.ViewXY; chart1.EndUpdate(); }X 軸を構成します。
ViewXY view = chart1.ViewXY; AxisX xAxis = view.XAxes[0]; xAxis.SetRange(0, 20); // X 軸の範囲を設定 xAxis.ScrollMode = XAxisScrollMode.Scrolling; // スクロール モードのアクセスを初期化Y 軸を構成します。
// Y 軸のリストを削除 view.YAxes.Clear(); for (int seriesIndex = 0; seriesIndex < SeriesCount; seriesIndex++) { AxisY yAxis = new AxisY(view); // Y 軸を作成 yAxis.SetRange(-100, 100); // Y 軸の範囲を設定 view.YAxes.Add(yAxis); // Y 軸をビューに追加 }ポイント ライン シリーズを使用して、線系列を作成します。
PointLineSeries line = new PointLineSeries(view, xAxis, yAxis);// 線系列を作成 line.PointsVisible = false; line.LineStyle.Color = DefaultColors.SeriesForBlackBackgroundWpf[seriesIndex];// それぞれの系列を色付け view.PointLineSeries.Add(line); // 線系列をビューに追加レイアウトを構成します。
view.AxisLayout.YAxesLayout = YAxesLayout.Stacked;古いスクロール データの自動破棄設定を有効化します。
view.DropOldSeriesData = true;データを定期的に追加するため、タイマーを作成します。
System.Windows.Threading.DispatcherTimer_timer;タイマーを構成します。
_timer = new System.Windows.Threading.DispatcherTimer(); _timer.Interval = TimeSpan.FromMilliseconds(10); _timer.Tick += _timer_Tick; _timer.Start();データ生成時に発生する Timer.Tick イベントを構成します。
private void _timer_Tick(object sender, EventArgs e) { chart1.BeginUpdate(); double x = (double) _pointsAdded * 0.01: // 点の数を 10 ミリ秒で掛ける for (int i = 0; i < SeriesCount; i++) { // 各系列の点の配列に対するデータ ポイントの配列を作成 SeriesPoint[] points = new SeriesPoint[1]; points[0].X = x; points[0].Y = _rand.Next(-100, 100); chart1.ViewXY.PointLineSeries[i].AddPoints(points, false); } chart1.EndUpdate(); }※ 点に対する変数と、Y 値を生成する乱数を追加する必要があります。
int_pointsAdded = 0; // 変数を追加Random _rand = new Random(); | // 乱数を追加X 軸に対するスクロール位置のプロパティを更新します。
// チャートが画面の端に到達した際、自動でスクロールを開始 chart1.ViewXY.XAxes[0].ScrollPosition = x;- アプリケーションをビルドおよび実行します。