2013-02-22 43 views
2

使用XML文件中的数据(数据可能不总是相同,请牢记)绘制Profit/Loss图形,并使用MSChart库,我目前获得两个条形图,一个用于正值,另一个用于负值。结合这两个系列在单个ChartArea,我目前得到看起来像这样的图表:C#MSChart:将轴线绘制为0,即使值为负值

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

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

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

我就能照顾不规则值的标签,一旦我知道如何表达0线,这是为什么这对我很重要。我非常感谢你能给我提供的任何帮助,因为我自己的研究迄今一直没有成果。

+0

我希望我的图表看起来像这样的示例的源代码:http://www.datameer.com/documentation/display/DAS21/Negative+Stacked+Bar+Chart – 2013-02-22 13:13:49

+0

mschart stackedcolumn的默认行为是做你想要的。所以问题就变成了,你是如何改变它以获得非零的Y起源的?发布一些代码可以帮助找到问题的根源。 – zeFrenchy 2013-02-26 15:15:50

回答

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

+0

该解决方案完美运行。问题在于我为其他需要显示的图形使用了不同的解决方案,但显然将这种解决方案应用于此类图形并不是一种好的方法。这已得到纠正,轴现在按预期工作。非常感谢您的帮助,非常感谢。 – 2013-02-26 18:47:43

0

另一种方法是,以设置的时间间隔为您ÿ轴。

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

相关问题