【问题标题】:How do I force a chart to auto adjust Y Axis Maximum?如何强制图表自动调整 Y 轴最大值?
【发布时间】:2012-01-09 13:01:20
【问题描述】:

我有一个在运行时填充的 .NET 图表

图表出现在报告中。对于我报告中的每个乐队,我清除所有系列并使用代码将它们添加回来

            Series s = new Series();
            s.Font = new Font("Verdana", 8f);                

            int i = 0;
            foreach (var month in line.Months)
            {
                DataPoint p = new DataPoint();

                p.XValue = i;
                p.YValues = new Double[] { month.LineValue ?? 0 };
                s.Points.Add(p);

                i++;
            }

当我第二次填充图表时,Y 轴最大值停留在 2000,即没有重新计算

如何强制重新计算?

我在 Y 轴上启用了 ScaleBreakStyle

如果我尝试在 Y 轴上将 IsLogarithmic 设置为 true,我会得到 X 而不是图表

我正在使用带有 System.Windows.forms.DataVisualization.Charting.Chart 的 Visual Studio 2010

保罗

【问题讨论】:

  • 看起来 Anton Kedrov 的回答应该是公认的解决方案

标签: .net c#-4.0 asp.net-charts


【解决方案1】:

chart.ChartAreas[0].RecalculateAxesScale();

【讨论】:

  • 我也尝试设置AxisY.Maximum = Double.NaN(AxisY2 也是如此),但它对我不起作用。
  • 这个答案对我有用。我正在启用/禁用不同的系列(所有系列最初都被禁用并从列表中控制)并注意到只有第一个启用的系列会设置 y 轴的最大值。
【解决方案2】:

The docsAxis.Maximum 属性的默认值为 NaN(不是数字),所以 您应该能够通过将其设置回该值来重新启用自动缩放功能 .

这样的……

chart.ChartAreas[0].AxisY.Maximum = Double.NaN;

更新/更正

安东的回答是正确的;你应该使用:

ChartArea.RecalculateAxesScale();

根据the RecalculateAxesScale() docs

...有时是 需要重新计算图表区域属性,以便图表 正确渲染。例如,如果更改轴范围,则 必须重新计算该轴的标签。

显然,它从 .NET 4.0 开始就可用了。

【讨论】:

  • 我想并尝试了同样的事情,但没有奏效。 Anton Kedrov 的回答有效
  • @yclkvnc,你能发布一些版本信息吗?我认为这个解决方案曾经奏效,但听起来大多数人现在对 Anton 的回答有更好的运气。
  • 抱歉,我什至不记得 5 年前使用过 .NET 图表 :)
【解决方案3】:

你需要运行这个序列:

AxisY.Maximum = Double.NaN; // sets the Maximum to NaN
AxisY.Minimum = Double.NaN; // sets the Minimum to NaN
enter code herechart.ChartAreas[0].RecalculateAxesScale(); // recalculates the Maximum and Minimum values, since they are set to NaN

【讨论】:

    【解决方案4】:

    首先,初始化这个:

    chart.ChartAreas[0].AxisY.IsStartedFromZero = false;
    

    每当添加数据点时,请执行此操作。

    pinChart.ChartAreas[0].RecalculateAxesScale();
    

    【讨论】:

      猜你喜欢
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2022-08-21
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多