我想在圖上繪製不同顏色的多條曲線。我目前正在使用一個繪圖儀(不知道這會的工作,這就是爲什麼我在這裏張貼線程),這裏是我的代碼:具有多個數據源的DynamicDataDisplay線圖繪圖儀?
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();
}
}
第一條曲線應該是綠色的,而第二曲線應該是紅色的。 plotter
是CharterPlotter
但是當我看圖時,我只有一條曲線。然後我查看了數據,看起來曲線顯示了第二個數據源的數據,但曲線的顏色是綠色的。
構造函數分配的顏色是這樣的:
LineGraph lgChA = plotter.AddLineGraph(dsChA, _dataBrushColorChA, 1, "Data");
LineGraph lgChB = plotter.AddLineGraph(dsChB, _dataBrushColorChB, 1, "Data");
其中,
_dataBrushColorChA = Colors.Green;
_dataBrushColorChB = Colors.Red;
基本上,我當事件發生時,每次只能更新數據點,因爲我已經試過AddLineGraph()
,但它原來是很慢, 所以我只更新數據點。 那麼,有誰給我任何指針?我如何處理這種多數據源情況?
我假設這是D3庫,是否正確? – WildCrustacean
我認爲這是。繪圖儀是一個DynamicDataDisplay.CharterPlotter。 –
這是一個猜測,但是它看起來像是在'startIndex'同時爲同一個繪圖儀子設置數據源:'((LineGraph)plotter.Children.ElementAt(startIndex)).DataSource =',也許索引A和B應該不同?如果它們綁定到相同的數據源,它可能會將兩條曲線繪製在彼此之上。 – WildCrustacean