如何在 Microsoft 图表控件的中心仅显示一条用于 Y 轴的虚线?
How to show only one dashed line for Y axis at center in Microsoft chart controls?
我想沿着位于垂直中间的 Y 轴显示一条虚线。我认为这是一个微不足道的问题,但似乎我不知道该怎么做,或者它不能作为直接选项使用。
这是我目前尝试过的方法
chart1.ChartAreas[0].AxisY.Enabled = AxisEnabled.True;
chart1.ChartAreas[0].AxisY.LineWidth = 1;
chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = true;
chart1.ChartAreas[0].AxisY.MinorGrid.Enabled = false;
chart1.ChartAreas[0].AxisY.IsStartedFromZero = true;
chart1.ChartAreas[0].AxisY.MajorGrid.IntervalType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisY.MajorGrid.IntervalOffsetType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 5;
chart1.ChartAreas[0].AxisY.Interval = 5;
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Black;
chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
请注意,我知道间隔 属性 不是根据我想要的设置的,但问题是无论我为 chart1.ChartAreas[0].AxisY.Interval 属性 图表控件简单地沿 Y 轴绘制这么多线。我什至尝试将我的输入规范化到范围 [-50, 50] 并将它们四舍五入为整数,但结果仍然相同。但是,我的间隔逻辑是使用 X 轴并产生预期结果,而不是 Y 轴。
所以我得到了基于TaW提供的的解决方案。将我使用的示例代码粘贴到此处,可能会对某人有所帮助。
ChartArea CA = chart1.ChartAreas[0];
Series S1 = chart1.Series[0];
S1.ChartType = SeriesChartType.Line;
CA.AxisY.Maximum = 100;
CA.AxisY.Minimum = -100;
CA.AxisY.Crossing = 0;
CA.AxisY.Interval = 10;
CA.AxisY.LineWidth = 1;
CA.AxisY.MajorGrid.Enabled = false;
CA.AxisY.MinorTickMark.Enabled = false;
诀窍是按照 TaW 的建议,通过设置 Crossing = 0 来禁用网格线并在中间显示一条线。请注意,它仅适用于 Y-axis,如果有人想在两个轴上都使用它而不需要将相同的属性应用于 X-axis。
我想沿着位于垂直中间的 Y 轴显示一条虚线。我认为这是一个微不足道的问题,但似乎我不知道该怎么做,或者它不能作为直接选项使用。
这是我目前尝试过的方法
chart1.ChartAreas[0].AxisY.Enabled = AxisEnabled.True;
chart1.ChartAreas[0].AxisY.LineWidth = 1;
chart1.ChartAreas[0].AxisY.MajorGrid.Enabled = true;
chart1.ChartAreas[0].AxisY.MinorGrid.Enabled = false;
chart1.ChartAreas[0].AxisY.IsStartedFromZero = true;
chart1.ChartAreas[0].AxisY.MajorGrid.IntervalType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisY.MajorGrid.IntervalOffsetType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisY.MajorGrid.Interval = 5;
chart1.ChartAreas[0].AxisY.Interval = 5;
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Black;
chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = ChartDashStyle.Dash;
请注意,我知道间隔 属性 不是根据我想要的设置的,但问题是无论我为 chart1.ChartAreas[0].AxisY.Interval 属性 图表控件简单地沿 Y 轴绘制这么多线。我什至尝试将我的输入规范化到范围 [-50, 50] 并将它们四舍五入为整数,但结果仍然相同。但是,我的间隔逻辑是使用 X 轴并产生预期结果,而不是 Y 轴。
所以我得到了基于TaW提供的
ChartArea CA = chart1.ChartAreas[0];
Series S1 = chart1.Series[0];
S1.ChartType = SeriesChartType.Line;
CA.AxisY.Maximum = 100;
CA.AxisY.Minimum = -100;
CA.AxisY.Crossing = 0;
CA.AxisY.Interval = 10;
CA.AxisY.LineWidth = 1;
CA.AxisY.MajorGrid.Enabled = false;
CA.AxisY.MinorTickMark.Enabled = false;
诀窍是按照 TaW 的建议,通过设置 Crossing = 0 来禁用网格线并在中间显示一条线。请注意,它仅适用于 Y-axis,如果有人想在两个轴上都使用它而不需要将相同的属性应用于 X-axis。