繁体   English   中英

C#Winforms Chart BoxPlot定义x值

[英]C# Winforms Chart BoxPlot define x-values

我的winform中有一个箱线图

using System.Windows.Forms.DataVisualization.Charting;

看起来像这样:

在此处输入图片说明

            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值分配给箱图,但是我不知道如何。

将所有DataPoints拟合到图表中的行为是正常的。 要更改它,您需要:

  • 删除您不再想要的点或
  • 设置要显示的点数范围

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

您正在使用未设置X-Values的隐式DataPoint构造函数。 因此它们都被设置为0

相反,您应始终确保自己具有有意义的x值!

这是一个显式的构造函数 ,可让您执行此操作。

如果不想为X值分配含义,则至少应将其设置为递增的数字!

这是添加“适当” DataPoint

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

现在,所有点都具有数字X值,您可以控制应显示多少个X值。 这是通过设置x轴的MinimumMaximum来完成的:

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

现在仅显示点2至7。

如果您实际上是在谈论三个系列,那么您将看到: ColumnBarBoxplot图中的每个系列的对应点总是组合在一起 您无法将它们从其所属的价值中分散开来。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM