可视化格式化图表问题

时间:2013-03-23 19:22:34

标签: c# charts

这是一个令人难以置信的本地化问题,但我现在花了一些时间在它上面,只是无法使格式化工作。基本上我想要做的是显示一个值的柱形图,但没有花里胡哨(即没有标签,没有标题,没有传说,没有!)我希望它看起来像这样: Desired image

但它看起来像这样:

Actual image

轴向外延伸到右边,我无法弄清楚如何让它消失。这是我的代码:

charts[i].Series.Clear();
charts[i].Series.Add("Block " + i + 1);
charts[i].Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
charts[i].Series[0].Points.Add(liveData[i]);
charts[i].ChartAreas[0].AxisY.Maximum = 4;
charts[i].ChartAreas[0].AxisY.Minimum = 0;
charts[i].ChartAreas[0].AxisX.Maximum = 1;
charts[i].ChartAreas[0].AxisX.Minimum = 1;
charts[i].ChartAreas[0].AxisX.MajorGrid.LineWidth = 0;
charts[i].ChartAreas[0].AxisY.MajorGrid.LineWidth = 0;
charts[i].ChartAreas[0].AxisX.LabelStyle.Enabled = false;
charts[i].ChartAreas[0].AxisY.LabelStyle.Enabled = false;
charts[i].ChartAreas[0].AxisY.LineWidth = 0;
charts[i].ChartAreas[0].AxisY.MajorTickMark.Enabled = false;
charts[i].ChartAreas[0].AxisX.MajorTickMark.Enabled = false;
charts[i].Series[0].IsVisibleInLegend = false;

现在我猜这是一个min / max的事情,但对于我的生活,我无法让它发挥作用。有人能看出我的错误吗?或建议除图表之外的其他方法?

另请注意,您在下方看到的“Block 1(V)”标签不是由图表生成的,它是textbox标签,恰好被截断到屏幕截图中。

谢谢!

1 个答案:

答案 0 :(得分:1)

您的数据的x值为1.默认情况下,条形图以1标记为中心。通过改变限制,你实际上只看到了一半。要做的两件事:告诉酒吧确切的宽度,并相应地限制x轴。

charts[i].Series[0].CustomProperties = "PointWidth = 1"; // One bar takes a width of 1 unit on the x-axis
charts[i].ChartAreas[0].AxisX.Minimum = 0.5; // change!
charts[i].ChartAreas[0].AxisX.Maximum = 1.5; // change!