如何强制图表自动调整Y轴最大值?
我有一个.NET图表,我在运行时填充如何强制图表自动调整Y轴最大值?
图表显示在报表中。我的这份报告每一个乐队,我清除所有系列并将它们添加回使用代码
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++;
}
当我填充图表的第二次,2000年Y轴的最大支柱,即没有被重新计算
如何强制重新计算?
我对Y轴
启用ScaleBreakStyle如果我尝试IsLogarithmic设置为true在y轴上,我收到了X,而不是图表
我使用Visual Studio 2010的系统。 Windows.forms.DataVisualization.Charting.Chart
保罗
chart.ChartAreas[0].RecalculateAxesScale();
我也试图设置'AxisY.Maximum = Double.NaN'(和AxisY2相同),但它不适合我。 – 2013-03-05 15:18:40
这个答案适合我。我是启用/禁用不同的系列(所有系列最初都是禁用的,并从列表中控制),并注意到只有启用的第一个系列会设置y轴的最大值。 – Doc 2015-12-03 11:48:50
The docs说的Axis.Maximum
属性的默认是NaN(非数字),所以
你应该能够通过将其设置回
来重新启用自动缩放功能。
事情是这样的......
chart.ChartAreas[0].AxisY.Maximum = Double.NaN;
UPDATE /校正
安东的回答是正确的;你应该用:
ChartArea.RecalculateAxesScale();
根据the RecalculateAxesScale()
docs:
...有时 必须重新计算图表区域属性,使图表是正确呈现 。例如,如果轴范围发生更改,则该轴的标签必须重新计算。
显然,它自.NET 4.0起就已经可用。
你需要运行这个程序:
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
请格式化代码并解释你做了什么 – Prateek 2016-08-03 18:07:58
看起来像安东凯德洛夫的答案应该是接受的解决方案 – Molomby 2017-08-02 00:49:58