C#MSChart:即使使用负值,也将轴线绘制为0

时间:2013-02-22 13:13:20

标签: c# charts mschart bar-chart

使用来自XML文件的数据(数据可能并不总是相同,请记住这一点)来绘制利润/损失图表,并使用MSChart库,我目前获得两个条形图,一个用于正值另一个是负值。将这两个系列组合在一个ChartArea中,我目前获得的图形如下所示:

http://i.imgur.com/K3BHXnS.png

然而,这仍然不是我想要的。我想将Y轴的“中间”线(图中的5.4)设为“0”。但是,我检查的每个方法只有在没有负值时才能这样做,这就是为什么它在我的情况下不起作用的原因。使用“交叉”属性也是不正确的,因为它会绘制一条额外的行,我希望我的标签使用'0'作为'基础',如果你愿意的话。换句话说,我希望我的图表看起来像这样:

http://i.imgur.com/k2WVGck.png

一旦我知道如何显示0行,我将能够处理标签的不规则值,这就是为什么我知道这一点很重要的原因。我非常感谢你能给我的任何帮助,因为到目前为止我自己的研究还没有结果。

2 个答案:

答案 0 :(得分:3)

确保让控件决定Y轴的最佳MinMax这样做:

chart1.ChartAreas[0].AxisY.Maximum = mymax;
chart1.ChartAreas[0].AxisY.Minimum = mymin;

enter image description here 相反,请确保将auto模式设置为:

chart1.ChartAreas[0].AxisY.Maximum = double.NaN;
chart1.ChartAreas[0].AxisY.Minimum = double.NaN;

enter image description here

答案 1 :(得分:0)

另一种方法是为Y轴设置间隔。

chart1.ChartAreas [" ChartArea1"]。AxisY.Interval = 25;