2D (XY) スクロール チャート

複数のチャンネルを使用したチャートにおける自動スクロールの設定方法

製品情報チャート一覧

このチュートリアルでは、1 つのチャートに複数のチャンネルを表示して、チャートが画面の端に到達した際、自動でスクロールを開始するスクロール チャートの作成方法を紹介します。

このチュートリアルでは、新規の WPF プロジェクトで線系列を使用したチャートを初期化し、自動破棄設定で古いスクロール データを削除することでメモリのリセットが必要ないスクロール チャートの生成方法を紹介します。


作成手順

  1. 新規の WPF プロジェクトを作成します。
    ※ 今回のアプリ開発では、バインド不可の LightningChart .NET を使用します。

  2. XAML ウィンドウでチャートに名前を付け、サイズ属性を削除します。

              // サイズ変更と名前の追加
              <lcu:LightningChartUltimate Content="LightningChartUltimate" Name="chart1"> 
            
  3. コード エディターで 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;
            
  4. チャートを参照して、初期化します。

              // チャートを初期化
              public MainWindow()
                {
                  InitializeComponent();
                  
                  IniChart();
                  
                }
              
                // 参照
                void IniChart()
                {
                  chart1.BeginUpdate();
                
                  ViewXY view = chart1.ViewXY; 
              
                  chart1.EndUpdate();
                }
            
  5. X 軸をすべてのチャンネルで共有します。

              // チャンネルの定数を定義
              const int SeriesCount = 4;
            
  6. X 軸を構成します。

              ViewXY view = chart1.ViewXY;
    
              AxisX xAxis = view.XAxes[0];
              xAxis.SetRange(0, 20); // X 軸の範囲を設定
              xAxis.ScrollMode = XAxisScrollMode.Scrolling; // スクロール モードのアクセスを初期化
            
  7. 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 軸をビューに追加
              }
            
  8. ポイント ライン シリーズを使用して、線系列を作成します。

              PointLineSeries line = new PointLineSeries(view, xAxis, yAxis);// 線系列を作成
              line.PointsVisible = false;
              line.LineStyle.Color = DefaultColors.SeriesForBlackBackgroundWpf[seriesIndex];// それぞれの系列を色付け
              view.PointLineSeries.Add(line); // 線系列をビューに追加
            
  9. レイアウトを構成します。

              view.AxisLayout.YAxesLayout = YAxesLayout.Stacked;
            
  10. 古いスクロール データの自動破棄設定を有効化します。

              view.DropOldSeriesData = true;
            
  11. データを定期的に追加するため、タイマーを作成します。

              System.Windows.Threading.DispatcherTimer_timer;
            
  12. タイマーを構成します。

              _timer = new System.Windows.Threading.DispatcherTimer();
              _timer.Interval = TimeSpan.FromMilliseconds(10);
              _timer.Tick += _timer_Tick;
              _timer.Start();
            
  13. データ生成時に発生する 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(); | // 乱数を追加
            
  14. X 軸に対するスクロール位置のプロパティを更新します。

              // チャートが画面の端に到達した際、自動でスクロールを開始
              chart1.ViewXY.XAxes[0].ScrollPosition = x;
            
  15. 最後に、点のカウンター変数を増やします。

              _pointsAdded++;
            
  16. アプリケーションをビルドおよび実行します。


ライセンス体系、価格、お見積り依頼、ご購入前の技術的なお問い合わせなど、本製品に関するご質問、ご不明な点はエクセルソフトまでお気軽にお問い合わせください。

お問い合わせ


ページトップへ