1

plotterDynamicDataDisplay.ChatterPlot変数です。次のような数行を追加します。

 LineGraph lgChA = plotter.AddLineGraph(dsChA, Colors.Red, 1, "Data");
 LineGraph lgChB = plotter.AddLineGraph(dsChB, Colors.Green, 1, "Data");

グラフ プロットはリアルタイムで更新されるため、次のようにデータ ソースのみを更新しています。

if (_dataXChA != null && _dataXChA.Length > 1)
        {
            EnumerableDataSource<double> xChA = new EnumerableDataSource<double>(_dataXChA);
            xChA.SetXMapping(xVal => xVal);

            if (_dataYChA != null && _dataYChA.Length == _dataXChA.Length)
            {
                EnumerableDataSource<double> yChA = new EnumerableDataSource<double>(_dataYChA);
                yChA.SetYMapping(yVal => yVal);
                CompositeDataSource dsChA = new CompositeDataSource(xChA, yChA);
                //((LineGraph)plotter.brus = dsChA; 
                ((LineGraph)plotter.Children.ElementAt(startIndex)).DataSource = dsChA;                    
                plotter.FitToView();
            }
        }

        if (_dataXChB != null && _dataXChB.Length > 1)
        {
            EnumerableDataSource<double> xChB = new EnumerableDataSource<double>(_dataXChB);
            xChB.SetXMapping(xVal => xVal);

            if (_dataYChB != null && _dataYChB.Length == _dataXChB.Length)
            {
                EnumerableDataSource<double> yChB = new EnumerableDataSource<double>(_dataYChB);
                yChB.SetYMapping(yVal => yVal);                    
                CompositeDataSource dsChB = new CompositeDataSource(xChB, yChB);
                ((LineGraph)plotter.Children.ElementAt(startIndex + 1)).DataSource = dsChB; 
                plotter.FitToView();
            }
        }

しかし、データポイントの更新を除いて、LineGraph変数のブラシの色も変更できるのでしょうか? それは plotter.XXX.color のような場所にあるはずだと思いますか?

4

2 に答える 2

2

次のように線の色を変更できます。

LineGraph lgChA = plotter.AddLineGraph(dsChA, Colors.Red, 1, "Data");
Pen newColour = new Pen(Brushes.Red, 1.0);
//or whatever colour you want to change it to, second parameter is line thickness
lgChA.LinePen = newColour;

線は、指定したペンの色に更新されます。

于 2013-01-04T07:37:37.590 に答える
1

基本的に、色が再割り当てされる前に毎回色を透明に設定することで、この問題を解決しました。このようなもの:

for (int i = 0; i < LiveImage.MAX_CHANNELS; i++)    // color reset
                {
                    ((LineGraph)plotter.Children.ElementAt(startIndex + i)).LinePen = new Pen(new SolidColorBrush(Colors.Transparent), 1);
            }

ポイントは、折れ線グラフを追加しないことです。

于 2013-02-12T16:53:21.810 に答える