仅显示完整的 X 轴间隔 VB.NET

Only Show Full X-Axis Intervals VB.NET

我正在使用 .NET 图表库来显示折线图(电压与时间)。完整的数据长度总是变化的(可以在 10 毫秒的数据到 ~250 毫秒的数据之间)。

我 运行 遇到的问题是图表上的最后一个区间通常被缩短了。例如,如果有 230 毫秒的数据,图表有 50 毫秒的间隔,则最终间隔将在 30 毫秒后截断,并且不会在 x 轴上显示完整的间隔。理想情况下,我希望它一直持续到 250 毫秒,并在 230 毫秒后停止显示数据(但扩展 x 轴范围以完全完成间隔)。

如果数据结束,是否有某个选项可以不缩短间隔?我什么也没找到。

只需明确设置最小值和最大值

' make a test series, add points
Dim s As New Series()
For i = 0 To 230
    s.Points.Add(New DataPoint(i, i))
Next
' add series to chart
Chart1.Series.Add(s)
' set axis interval, min, and max
Chart1.ChartAreas(0).AxisX.Interval = 50
Chart1.ChartAreas(0).AxisX.Minimum = 0
Chart1.ChartAreas(0).AxisX.Maximum = 250

如果您不想对其进行硬编码,可以通过编程方式完成

Chart1.ChartAreas(0).AxisX.Maximum = Math.Ceiling(maxValue / interval) * interval

如果不想设置间隔,可以按最大值计算。这是一个示例,但您可能需要调整范围和值

Private Function getInterval(maxValue As Double) As Double
    Select Case maxValue
        Case 0 To 10
            Return 1
        Case 10 To 50
            Return 5
        Case 50 To 100
            Return 10
        Case 100 To 1000
            Return 50
        Case Else
            Return 100
    End Select
End Function

''' 

Dim maxValue = 33
' make a test series, add points
Dim s As New Series()
For i = 1 To maxValue
    s.Points.Add(New DataPoint(i, i))
Next
' add series to chart
Chart1.Series.Add(s)
Dim interval = getInterval(maxValue)
Chart1.ChartAreas(0).AxisX.Minimum = 0
Chart1.ChartAreas(0).AxisX.Maximum = Math.Ceiling(maxValue / interval) * interval