[英]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.