1

グラフに複数の曲線を異なる色でプロットしようとしています。私は現在1つのプロッタを使用しています(それが機能するかどうかはわかりません。そのため、ここにスレッドを投稿しています)。コードは次のとおりです。

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.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)).DataSource = dsChB;
    //LineGraph lgChA = plotter.AddLineGraph(dsChB, _dataBrushColorChB, 1, "Data");
    plotter.FitToView();
  }
}

最初の曲線は緑色で、2番目の曲線は赤色である必要があります。plotterですがCharterPlotter、グラフを見ると、曲線は1つしかありません。次にデータを見ると、曲線には2番目のデータソースからのデータが表示されているようですが、曲線の色は緑色です。

コンストラクターは次のように色を割り当てます。

LineGraph lgChA = plotter.AddLineGraph(dsChA, _dataBrushColorChA, 1, "Data");
LineGraph lgChB = plotter.AddLineGraph(dsChB, _dataBrushColorChB, 1, "Data");

どこ、

_dataBrushColorChA = Colors.Green;
_dataBrushColorChB = Colors.Red;

基本的には、試したのでイベントが発生するたびにデータポイントを更新するだけですが、AddLineGraph()非常に遅いことがわかったので、データポイントのみを更新します。それで、誰かが私に何か指針を与えますか?この複数のデータソースの状況をどのように処理できますか?

4

1 に答える 1

1

startIndex両方のチャネルで同じプロッタの子のデータソースを設定しているようです。

((LineGraph)plotter.Children.ElementAt(startIndex)).DataSource = dsChA;

...

((LineGraph)plotter.Children.ElementAt(startIndex)).DataSource = dsChB;

2番目の割り当てにより、DataSourceがオーバーライドされdsChB、1行のみが表示されます。

たぶん、インデックスはAとBで異なるはずですか?

于 2013-01-03T15:54:17.100 に答える