MS 图表中的白色 Space

White Space in MS chart

我有一个包含 12 个数据点的简单图表。问题是它在开始趋势线之前显示了一个小的白色区域。 这是代码

for (int i = 0; i < 12; i++)
{
    chart1.Series[0].Points.AddXY(DataTable.Rows[i].ItemArray[0], plotDataTable.Rows[i].ItemArray[1]);
    chart1.Series[1].Points.AddXY(DataTable.Rows[i].ItemArray[0], plotDataTable.Rows[i].ItemArray[2]);
    chart1.Series[2].Points.AddXY(DataTable.Rows[i].ItemArray[0], DataTable.Rows[i].ItemArray[3]);
    chart1.Series[3].Points.AddXY(DataTable.Rows[i].ItemArray[0], DataTable.Rows[i].ItemArray[4]);
}

DataTable的第一列是字符串,其他四列是浮点数。

您需要将 AxisX.Minimum 设置为合适的值。

通常这将是 0 第一个 DataPoint.

的 x 值

但是您添加值的方式将不起作用。

您正在以一种相当不幸的方式添加 DataPoints,这有时是可以的,但通常情况下它会产生各种问题。

推荐的方法是将 x 值添加为 numbersDateTimes,这将在内部转换为 doubles.

但是你加上strings。这个 看起来 没问题,但是 x 值既不包含这些字符串,也不包含任何其他内容,只包含 0s。因此你不能使用它们来设置范围或工具提示或缩放范围或计算东西..

但如果您愿意,您仍然可以通过将最小值设置为 1:

来获得您想要的结果
ChartArea ca = yourChart.ChartAreas[0];
ca.AxisX.Minimum = 1;

我也将 x 值添加为字符串,但它们看起来像数字。

但是推荐的方法是将您的值转换为数字,这样您就可以将它们用于各种事情..

一些注意事项:

  • 此转换由图表完成,如果对 y 值可能但对 x 值 不可能!可能是因为没有数字 y 值的图表根本没有意义,而有时 x 值根本不包含有意义的数字数据,如姓名、ID、邮政编码等。

  • 不要让视觉效果欺骗了您:strings 仅复制到轴标签中;否则他们迷失! (你应该用调试器检查一下!!)

  • 您可能会注意到屏幕截图中 Label 的数量发生了变化。该数字是根据 x 轴的 Interval 计算得出的。默认情况下,它会自动计算 (Interval=double.NaN) 以适应合理的数量。您可以将其设置为您喜欢的任何距离。通常它指的是轴单位,但在这种情况下指的是点数。将其设置为 2,每第二个点得到一个 Label;将其设置为 0.5 以获得 2 Labels 每个 DataPoint..

  • 使用实数(或数据时间)作为 x 值,您还可以设置间隔类型,例如秒或天..

默认情况下,ChartArea 的 IsStartedFromZero 属性 设置为真。此设置将强制图表始终从零开始。尝试将其设置为 false:

chart1.ChartAreas[0].AxisX.IsStartedFromZero = false;
chart1.ChartAreas[0].AxisY.IsStartedFromZero = false;