无法读取MS图表上的最大Y轴值

时间:2012-07-12 19:35:14

标签: c# asp.net-mvc-3 mschart

chart

我在MVC3视图上使用MS Chart生成的图像。

图表有效,但图表顶部的最大值非常高,我无法读取数值。

图表是否有最大值的保证金?

我真的不知道这是否是一个真正的问题,但除非我定义一个我认为不应该用于动态值的AxisYMaximum值,否则我不能让它看起来很好。

1 个答案:

答案 0 :(得分:3)

是的,图表控件应该计算清楚显示数据所需的保证金,但根据我的经验,它没有。

由于您的y值是动态的,因此您可以将AxisYMaximum动态设置为略高于最大显示y值的值。这样的事情可以设置它:

double greatestYValue = double.MinValue;

foreach (var pt in Chart1.Series[0].Points) 
{
    if (greatestYValue < pt.YValues[0]) greatestYValue = pt.YValues[0];
}

Chart1.ChartAreas[0].AxisY.Maximum = greatestYValue * 1.2;
// or
Chart1.ChartAreas[0].AxisY.Maximum = greatestYValue + 20;

我只是循环浏览第一个系列中的所有点以找到最大的y值,然后将y轴最大值设置为该值的120%,或者将某个绝对量设置为高于该值,或者您需要的任何值。< / p>

您还可以使用LINQ在单行中获得最大的y值:

double greatestYValue = Chart1.Series[0].Points.Select(p => p.YValues[0]).Max();