我试图在我的图表上绘制不同颜色的多条曲线。我目前正在使用一个绘图仪(不确定这是否可行,这就是我在这里发布一个帖子的原因),这是我的代码:
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()
,但事实证明它很慢,
所以我只更新数据点。
那么,有人给我任何指示吗?如何处理这种多数据源情况?
答案 0 :(得分:1)
看起来您正在startIndex
为两个频道设置同一绘图仪子项的数据源:
((LineGraph)plotter.Children.ElementAt(startIndex)).DataSource = dsChA;
...
((LineGraph)plotter.Children.ElementAt(startIndex)).DataSource = dsChB;
第二个分配会导致DataSource
被dsChB
覆盖,这会使它只显示一行。
A和B的索引可能不同吗?