【问题标题】:Can't read maximum Y axis value on MS chart无法读取 MS 图表上的最大 Y 轴值
【发布时间】:2012-07-12 19:35:13
【问题描述】:

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

图表有效,但图表顶部的最大值太高,我无法读取这些值。

图表不应该与最大值有一个边距吗?

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

【问题讨论】:

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


    【解决方案1】:

    是的,图表控件应该计算清楚显示数据所需的边距,但根据我的经验,它不会。

    由于您的 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%,或者高于该值的某个绝对量,或者您需要的任何值。

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

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

    【讨论】:

      猜你喜欢
      • 2021-02-02
      • 2016-06-20
      • 1970-01-01
      • 2021-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多