【问题标题】:VB.net Redraw / Refresh / recalculate ChartVB.net 重绘/刷新/重新计算图表
【发布时间】:2013-09-20 14:55:11
【问题描述】:

我想有很多答案,但我只找到了有关数据更新的答案,而不是图表本身。

就我而言,我有一个图表,每 X 分钟更新一次。当程序启动时,它会在文件中查找一些值。假设只有一个 one 值(在这种情况下为一列),这个值为 20。然后它显示它很好,最大值为 30。

当它刷新时,我会做这样的事情

TheDiagram.Series.Clear()
Dim Serie_Value As New Series
With Serie_Value
    .Name = "MySerie"
    .ChartType = SeriesChartType.StackedColumn
    .Color = Color.Green
    With .Points
        .AddXY("MyName", theValueFromFile)
    End With
End With
TheDiagram.Series.Add(Serie_Value)

在这种情况下,我们说现在的值是 60,那么 y 轴仍然在 30 作为最大值,所以我看不到列的结尾(顶部)。 如何告诉图表/chartarea“像第一次渲染一样重绘自己”?

【问题讨论】:

    标签: vb.net charts diagram


    【解决方案1】:

    要重置自动缩放,只需在将点加载到图表后使用它即可。

    Chart1.ResetAutoValues()
    

    【讨论】:

      【解决方案2】:

      您是否尝试过自动缩放 y 轴?

      ' Auto axis scale
      Chart1.ChartAreas("ChartArea1").AxisY.Minimum = [Double].NaN
      Chart1.ChartAreas("ChartArea1").AxisY.Maximum = [Double].NaN
      

      您应该在每次图表刷新时设置这些,然后轴应该会自动调整。

      【讨论】:

      • 天哪。这是一个老话题,我真的忘记了。我通过删除旧的chartArea 来“修复它”,并为新数据创建一个新的,每次重新加载时。每次更新都可能产生非常不同的布局,所以我认为这个解决方案是最好的。我曾经尝试过你的代码,它就像一个魅力,并且完全符合我的要求,所以我会接受它作为正确答案! :-)
      • 这行得通,因为由于某种原因我无法捕获 NaN。使用 Chart 对象,有时我认为 NaN 可以加载到点中,并且当 NaN 已经在上游(在系列中)时,稍后会发生溢出错误。使用此修复程序,错误不再发生。
      【解决方案3】:

      自 .NET 4.0 起可用:Chart1.ChartAreas[0].RecalculateAxesScale();

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-15
        • 1970-01-01
        • 1970-01-01
        • 2015-12-18
        • 1970-01-01
        • 1970-01-01
        • 2017-08-30
        • 2014-08-16
        相关资源
        最近更新 更多