繁体   English   中英

c#Winform MSChart反转Y轴

[英]c# Winform MSChart reverse Y Axis

我在 Windows 窗体上使用 MSChart 控件。

我试图通过使用AxisY.IsReversed = true使Y 轴下降,但仍将 X 轴保持在底部。 默认情况下,当我使用AxisY.IsReversed = true ,X 轴AxisY.IsReversed = true顶部。 然后我尝试设置AxisY.Crossing = Max将轴翻转到 Y 轴的最大端(位于底部),但它不会低于 X 轴,它只会在它上方移动.

请帮我!!!!!

您描述的行为与 Microsoft 演示项目中显示的行为相同。 我相信没有任何调整可以使 X 轴的标签简单地出现在 X 轴下方,因为没有与Axis.LabelPosition属性类似的Axis.LabelPosition ,它会指定标签应该在轴下方。

当您指定chart1.ChartAreas[0].AxisX.IsMarksNextToAxis = false; ,然后标签出现在图表的顶部,而不是根据需要出现在底部。

您可以使用的唯一调整是不要设置AxisY.IsReversed = true; ,但让你所有的 Y 值*-1 (使它们为负)。 然后使用LabelStyle.Format将负数格式化为正数。

chart1.ChartAreas[0].AxisY.IsReversed = false;               
chart1.ChartAreas[0].AxisY.LabelStyle.Format = "##.##;##.##;##.##";

如果您不能或不想更改数据源,还有另一种可能性。

如果 y 轴反转,则 x 轴绘制在顶部而不是底部。 这无法更改,但可以为图表系列设置应使用辅助 x 轴。

series.XAxisType = AxisType.Secondary;

现在辅助轴总是绘制在主轴的另一侧,即在这种情况下在底部 - 这正是您在这种情况下想要的。

请注意,必须以与主轴相同的方式配置从轴(例如设置最小值或最大值)

//Primary
chartArea.AxisX.IsReversed = chartDefinition.XAxis.InvertAxis;
chartArea.AxisX.Minimum = minimum;
chartArea.AxisX.Maximum = maximum;

//Secondary
chartArea.AxisX2.Minimum = minimum;
chartArea.AxisX2.Maximum = maximum;

这同样适用于 y 轴。

对我来说效果很好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM