vb.net - 仅显示完整的 X 轴间隔 VB.NET
问题描述
我正在使用 .NET 图表库来显示折线图(电压与时间的关系)。完整的数据长度总是变化的(可以在 10ms 的数据到 ~250ms 的数据之间)。
我遇到的问题是图表上的最终间隔通常会缩短。例如,如果有 230ms 的数据,而图表有 50ms 的间隔,则最终间隔将在 30ms 后被截断,并且不会在 x 轴上显示完整的间隔。理想情况下,我希望它一直到 250 毫秒,并在 230 毫秒后停止显示数据(但扩展 x 轴范围以完全完成间隔)。
如果数据结束,是否有一个选项可以不缩短间隔?我什么都没找到。
解决方案
Just set the min and max explicitly
' 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
If you don't want to hard-code it, it can be done programatically
Chart1.ChartAreas(0).AxisX.Maximum = Math.Ceiling(maxValue / interval) * interval
If you don't want to set the interval, you can calculate it based on the max value. This is an example but you may want to tweak the ranges and values
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
推荐阅读
- reactjs - 如果使用索引作为 ReactJs 键不好。那我应该用什么?
- node.js - 读取 zip 文件(文件夹)并将其写入目标
- sql-server - Power Query SQL Server 连接 - 验证“Windows 备用用户帐户”
- excel - 将图表系列名称设置为表列名称而不是 Series1、2、3,
- php - AJAX php 文件中的会话未更新
- r - 在与远程位置不同的本地位置开发时如何处理 R 中的路径
- xamarin - 如何在折线图边缘下有渐变背景?
- operating-system - 操作系统中的“调度延迟”和“上下文切换”有什么区别?
- regex - mongo db count 查询不区分大小写
- python - Tensorflow,如何连接具有不同批量大小的多个数据集