Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Winforms图表箱线图定义x值_C#_Winforms_Charts_Boxplot - Fatal编程技术网

C#Winforms图表箱线图定义x值

C#Winforms图表箱线图定义x值,c#,winforms,charts,boxplot,C#,Winforms,Charts,Boxplot,我的winform中有一个箱线图 using System.Windows.Forms.DataVisualization.Charting; 看起来是这样的: Series数据系列=新系列(字段名); dataSeries.ChartType=SerieChartType.BoxPlot; double[]数据点=新的double[]{ values.Min(), values.Max(), 统计助手.中值(值.其中(x=>xx>中值).ToArray()), value.Average(

我的winform中有一个箱线图

using System.Windows.Forms.DataVisualization.Charting;
看起来是这样的:

Series数据系列=新系列(字段名);
dataSeries.ChartType=SerieChartType.BoxPlot;
double[]数据点=新的double[]{
values.Min(),
values.Max(),
统计助手.中值(值.其中(x=>x<中值).ToArray()),
统计助手.中值(值.其中(x=>x>中值).ToArray()),
value.Average(),
中值的
};
dataSeries.Points.Add(dataPoints);
charttributes.Series.Add(dataSeries);

如何将数据系列分布到图表中?当前的行为是,1周围使用区域的witdh保持不变,各个箱线图共享该区域(箱线图越多,每个箱线图越薄)。我想有必要为箱线图指定不同的x值,但我不知道如何进行。

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

  • 删除您不再需要的点或
  • 设置要显示的点的范围
要设置范围,您需要适当的数据点,即带有数值的数据点

您使用的是一个隐式
数据点
构造函数,它不设置
X值
。因此,它们都被设置为
0

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

那会让你这么做的

如果您不想为X值赋予意义,则至少应将设置为递增的数字

下面是如何添加“正确的”
数据点的方法:

    dataSeries.Points.Add(new DataPoint(dataSeries.Points.Count, dataPoints));
现在,所有点都具有数字X值,您可以控制显示其中的多少。这是通过设置x轴的
最小值
最大值
来实现的:

    yourChartArea.AxisX.Minimum = 2;
    yourChartArea.AxisX.Maximum = 7;
现在仅显示点2到7


如果你真的在谈论你所展示的三个系列:
条形图
箱线图
中每个系列的对应点总是分组在一起
;您不能将它们从它们所属的值中分散开来。

您能提供统计助手的库名吗?
    yourChartArea.AxisX.Minimum = 2;
    yourChartArea.AxisX.Maximum = 7;