C#MSChart:在0处绘制轴线,即使带有负值

C#MSChart:在0处绘制轴线,即使带有负值,c#,charts,mschart,bar-chart,C#,Charts,Mschart,Bar Chart,使用XML文件中的数据(数据可能并不总是相同的,请记住)绘制损益图,并使用MSChart库,我目前获得了两个条形图,一个用于正值,另一个用于负值。将这两个系列组合在一个图表区域中,我目前获得的图形如下所示: 然而,这仍然不是我想要的。我希望Y轴的“中间”线(图中为5.4)为“0”。然而,我检查过的每个方法只有在没有负值的情况下才能这样做,这就是为什么它在我的情况下不起作用。使用“Crossing”属性也是不正确的,因为它会在我希望标签使用“0”作为“基准”的位置绘制一条额外的线,如果您愿意的话

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

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


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

请确保让控件决定Y轴的最佳
Min
Max
。 所以,不要这样做:

chart1.ChartAreas[0].AxisY.Maximum = mymax;
chart1.ChartAreas[0].AxisY.Minimum = mymin;
相反,请确保使用以下选项设置
auto
模式:

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

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


图表1.图表区域[“图表区域1”].AxisY.Interval=25

我想让我的图表看起来像一个示例:mschart stackedcolumn的默认行为是完全按照您的要求执行。所以问题变成了,你是如何改变它来得到一个非零Y原点的?发布一些代码将有助于找到问题的根源。此解决方案非常有效。问题是,对于我需要显示的其他图形,我使用了不同的解决方案,但显然,将该解决方案应用于这种类型的图形并不是一条可行之路。这已得到纠正,轴现在的行为与预期一致。我很感谢你的帮助,非常感谢。