累积图表系列中的值 - WPF DevExpress

时间:2014-10-09 09:53:45

标签: c# wpf charts devexpress series

我在运行时在DevExpress中为图表控件创建了几个系列。系列必须在运行时创建,因为系列的数量可能与我的数据查询不同。以下是我创建系列的方法:

foreach (var item in lstSPCPrintID)
{
    string seriesName = Convert.ToString(item);
    LineSeries2D series = new LineSeries2D();
    dxcSPCDiagram.Series.Add(series);

    series.DisplayName = seriesName;

    var meas = from x in lstSPCChart
                where x.intSPCPrintID == item
                select new { x.intSPCMeas };

    foreach (var item2 in meas)
    {
        series.Points.Add(new SeriesPoint(item2.intSPCMeas));
    }
}

这发生在backgroundworker完成的事件中,所需的所有数据都在相应的列表中。在我正在运行的测试实例中,创建了6个系列。

每个系列都包含我在x轴上需要的一些测试测量。这些测量值可以是相同的值(在很多情况下都是相同的值)。我想要的是y轴包含测量的次数,例如-21。这将最终创建一条曲线。

现在我为每个测量创建一个系列点,但我不知道如何在这个特定场景中处理ArgumentDataMember / ValueDataMember。有没有办法让图表自动进行计数,还是需要手动完成?任何人都可以帮我回到正轨吗?

1 个答案:

答案 0 :(得分:1)

在添加系列点之前,我最终对测量进行了明确的计算。

foreach (var item in lstSPCPrintID)            
{
    string seriesName = String.Format("Position: {0}", Convert.ToString(item));
    LineStackedSeries2D series = new LineStackedSeries2D();
    series.ArgumentScaleType = ScaleType.Numerical;
    series.DisplayName = seriesName;
    series.SeriesAnimation = new Line2DUnwindAnimation();

    var meas = from x in lstSPCChart
               where x.intSPCPrintID == item
               select new { x.dblSPCMeas };

    var measDistinctCount = meas.GroupBy(x => x.dblSPCMeas).Select(group => new { Meas = group.Key, Count = group.Count() }).OrderBy(y => y.Meas);

    foreach (var item2 in measDistinctCount)
    {
        series.Points.Add(new SeriesPoint(item2.Meas, item2.Count));
    }

    dxcSPCDiagram.Series.Add(series);

    series.Animate();
}