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
的范围。
您正在使用未设置 X-Values
的隐式 DataPoint
构造函数。所以他们都被设置为 0
相反,您应该始终确保您拥有有意义的 x 值!
This is an explicit constructor 这会让你做到这一点。
如果您不想为 X 值赋予意义,您至少应该将其设置为递增的数字!
这是添加 'proper' DataPoint
:
的方法
dataSeries.Points.Add(new DataPoint(dataSeries.Points.Count, dataPoints));
现在所有点都有数字 X 值,您可以控制显示多少点。这是通过设置 x 轴的 Minimum
和 Maximum
来完成的:
yourChartArea.AxisX.Minimum = 2;
yourChartArea.AxisX.Maximum = 7;
现在只显示点 2 到 7。
如果您实际上是在谈论您显示的三个系列:Column
、Bar
或 Boxplot
图表中每个系列的对应点总是 组合在一起;你不能将它们分散到它们所属的值之外。
我的 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
的范围。
您正在使用未设置 X-Values
的隐式 DataPoint
构造函数。所以他们都被设置为 0
相反,您应该始终确保您拥有有意义的 x 值!
This is an explicit constructor 这会让你做到这一点。
如果您不想为 X 值赋予意义,您至少应该将其设置为递增的数字!
这是添加 'proper' DataPoint
:
dataSeries.Points.Add(new DataPoint(dataSeries.Points.Count, dataPoints));
现在所有点都有数字 X 值,您可以控制显示多少点。这是通过设置 x 轴的 Minimum
和 Maximum
来完成的:
yourChartArea.AxisX.Minimum = 2;
yourChartArea.AxisX.Maximum = 7;
现在只显示点 2 到 7。
如果您实际上是在谈论您显示的三个系列:Column
、Bar
或 Boxplot
图表中每个系列的对应点总是 组合在一起;你不能将它们分散到它们所属的值之外。