仅显示完整的 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
我正在使用 .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