VB.NET图表自动缩放,但保留10x AxisX(实时图表)

时间:2016-03-17 12:07:20

标签: vb.net charts

请原谅我在解释这个问题时遇到困难,因为我对vb.net中的图表缺乏经验。

说明:

按一下按钮(最终是一个计时器)我用这个

        Chart1.Series("Channel 1").ChartType = DataVisualization.Charting.SeriesChartType.FastLine
    With Chart1.ChartAreas(0)
        .AxisX.Maximum = 10 'or double.NaN?
        .AxisX.Minimum = 0
        .AxisY.Maximum = 100
        .AxisY.Minimum = 0
        .AxisX.Interval = 1
    End With

并添加此

Chart1.Series("Channel 1").Points.AddXY(lHrMin.Text, tbCount1.Text) 'A count number and time in hr-min-sec format
Chart1.Series("Channel 2").Points.AddXY(lHrMin.Text, tbcount2.Text) 'A count number and time in hr-min-sec format

如果我点击几次按钮

,这会导致我的图表看起来像这样

enter image description here

问题:

上面的示例在axisx 10处停止,因为这是我的最大值。 NaN代替10将导致下面的下一张图片。

由于它将连接到计时器,我希望我的图表始终查看最后一小时左右,但不是更多。我不希望它很长,因为它会很小,就像这样:

enter image description here

我想要的是什么:

因此它应该像实时图表一样永久扩展,但只能始终显示10个axisX。我发现这个gif来说明我正在寻找https://camo.githubusercontent.com/19cfad4976e427bf31ca6a0a3d03728cf2b10704/687474703a2f2f692e696d6775722e636f6d2f4d524b32304b622e676966 / http://tinyurl.com/jhb62pt的内容 - 此视频https://www.youtube.com/watch?v=JdwW7UTjO2A

出于某种原因,这似乎并不像我想要的那么容易。我从很多不同的来源尝试了很多东西,但没有一个真的有效。

我的问题......

如何使图表保持10轴X轴,但仍然会在每次点击按钮时更新(最终定时器)?让它循环我想...猜它可能像财产或其他东西一样简单。感谢。

编辑1: 我找到了几个关键字。带有情节的实时图表。 删除系列的最后一个值并替换为new。问题仍然存在,如何?

1 个答案:

答案 0 :(得分:1)

我会说尝试这样的事情:

'Whenever you need to add a point
Public Sub AddPoint(Channel as String, Time as String, Count as Integer)
  Dim points = Chart1.Series(Channel).Points
  if points.Count > maxPoints then 'Where maxPoints is the maximum number of points you can allow on your chart
    points.removeAt(0) 'Will work if points is an Enumerable
  End if
  points.addXY(Time, Count)
End Sub

我们的想法是从图表中删除最旧的点,这样它就会移动。