2016-02-29 24 views
1

我在我的winform有一个箱线图C#的WinForms图箱线图定义x值

using System.Windows.Forms.DataVisualization.Charting; 

它看起来像这样:

enter image description here

  Series dataSeries = new Series(fieldName); 

        dataSeries.ChartType = SeriesChartType.BoxPlot; 

        double[] dataPoints = new double[]{ 
         values.Min(), 
         values.Max(), 
         StatisticsHelpers.Median(values.Where(x => x < median).ToArray()), 
         StatisticsHelpers.Median(values.Where(x => x > median).ToArray()), 
         values.Average(), 
         median 
        }; 

      dataSeries.Points.Add(dataPoints); 
      chartAttributes.Series.Add(dataSeries); 

我怎么可以在传播数据系列图表?目前的行为是1周围的旧区域保持不变,各个箱型图共享该区域(箱型越多,每个区域越薄)。我想这是不知为什么必须分配不同的x值给boxplots,但我不知道如何。

+0

您能否提供StatisticsHelpers的图书馆名称? –

回答

2

拟合所有DataPoints的行为是正常的。要改变它,你需要:

  • 删除点,你不希望任何更多或
  • 设置点显示的范围

要设置的范围,你需要适当DataPoints,即具有数字X-Value

您正在使用一个隐含的DataPoint构造函数,它不会设置X-Values。所以他们都设置为0

相反,你应该始终确保你有有意义的x值!

This is an explicit constructor这会让你做到这一点。

如果您不想为X值指定含义,您至少应将其设置为越来越多的数字!

这里是你如何添加一个“适当的” DataPoint

dataSeries.Points.Add(new DataPoint(dataSeries.Points.Count, dataPoints)); 

现在的点都有数字x值,你可以控制有多少人应显示。这是通过设置在x轴上的MinimumMaximum完成:

yourChartArea.AxisX.Minimum = 2; 
    yourChartArea.AxisX.Maximum = 7; 

现在只能分2〜7被显示。

如果你真的是在谈论三大系列告诉你:每个系列的对应点在ColumnBarBoxplot图表的总是组合在一起;你不能将它们从它们所属的价值中分散出去。