vb.net - 如何从通过串口从机器接收到的点构建图表?
问题描述
将点转换为图表
我通过串口从机器获取数据。如何将其转换为图表。以下是我的数据
WBC graph
Scale(fl): 400
Channels: 256
WMarker1: 11
WMarker2 40
WMarker3: 70
Points: 0 0 0 0 0 0 0 0 0 0 0 5 7 9 12 17
22 29 37 48 61 78 97 119 141 163 183 200 216 229 239 248
253 254 252 247 237 225 211 197 182 168 154 142 131 119 108 97
87 77 69 62 57 52 47 43 39 36 32 30 29 28 27 27
26 26 26 26 25 25 25 25 25 26 26 27 27 28 28 29
30 30 31 32 34 35 37 38 39 40 41 41 42 43 45 46
46 47 46 45 44 43 42 41 41 40 40 40 41 42 44 45
47 47 48 48 47 46 45 44 43 42 41 40 39 39 39 39
39 38 37 37 36 36 35 35 34 34 34 34 34 34 33 32
31 29 28 27 25 24 23 22 21 21 21 21 21 21 21 20
20 19 18 18 17 16 16 15 15 14 14 13 12 11 10 9
9 9 9 9 9 8 7 7 6 6 6 6 6 5 5 5
5 5 5 5 5 5 4 4 3 3 3 2 2 2 2 1
1 1 1 1 1 1 1 1 1 1 1 0 0 0 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0
解决方案
例如,这些文章会有所帮助。
.NET 图表入门
如何在 vb.net
中使用 MS Chart Control VB 绘制连续线图交互式图表
应为新项目/解决方案添加对以下两个的引用:
System.Text
System.Windows.Forms.DataVisualization.Charting
假设工具箱中的以下两个控件已添加到表单窗口中:
假设 TextBox 包含问题中描述的内容的文本。
Chart Control
TextBox Control
如果将以下程序粘贴到按钮单击事件处理程序中并执行它,则可以显示图表。
顺便说一句,如果已经有数字字符串或整数数组数据,则可以缩短 从TextBox1.Text
to到to的转换过程。values1
values1
series1
Chart1.Titles.Clear()
Chart1.Titles.Add("WBC graph")
Chart1.ChartAreas.Clear()
Dim area1 As New ChartArea()
area1.AxisX.Title = "Sample Number"
area1.AxisY.Title = "Count"
area1.AxisY.Maximum = 400
area1.AxisY.Minimum = 0
area1.AxisX.Maximum = 256 ' Added if you want to fix the range.
area1.AxisX.Minimum = 0 '
Chart1.ChartAreas.Add(area1)
Dim values1 As String()
values1 = TextBox1.Text.Substring((TextBox1.Text.IndexOf("Points:") + 8)).Split(New String() {" ", "\t", "\r", "\n", vbCrLf, ","}, StringSplitOptions.RemoveEmptyEntries)
Dim series1 As New Series()
series1.ChartType = SeriesChartType.Line
series1.LegendText = "Cell Count"
For Each s In values1
series1.Points.Add(Integer.Parse(s))
Next
Chart1.Series.Clear()
Chart1.Series.Add(series1)
结果的一个例子。
另外:
如果您不想在样本数很少的情况下改变X轴范围,您可以在设置area1
属性时将X轴最小/最大值设置为固定值。
添加到源。