我在Windows窗体上使用MSChart控件。
我正在使用AxisY.IsReversed = true
尝试降Y轴,但仍保持X轴在底部。默认情况下,当我使用AxisY.IsReversed = true
时,X轴会上升到顶部。然后我尝试设置AxisY.Crossing = Max
将轴翻转到Y轴的最大端(位于底部)但是它不会低于X轴,它只会到达在它之上。
请帮帮我!!!!!
答案 0 :(得分:0)
您描述的行为与Microsoft演示项目中显示的行为相同。我相信没有任何调整可以使X轴的标签简单地出现在X轴下,因为没有类似于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 = "##.##;##.##;##.##";
答案 1 :(得分:0)
如果您不能或不想更改数据源,则还有另一种可能性。
如果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轴也是如此。
为我工作得很好。