import namespace
[vb] view plain copy
Imports System.Windows.Forms.DataVisualization.Charting
找个namespace包含用于图表 Windows 窗体控件方法和属性(如chart控件)
-
设置chart控件
a. 在ChartArea属性里,添加ChartArea1, ChartArea2.
b. 设置align相关属性。
![在这里插入图片描述](https://img-blog.csdn.net/20170425215651790?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpaGFvNTU1NTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center#pic_center)
-
使用代码配置ChartArea
a. 已添加ChartArea。
这种情况直接设置
[vb] view plain copy
Chart1.ChartAreas(0).AxisX.Title = “Length (nt)” '设置ChartArea里坐标轴标题
Chart1.ChartAreas(0).AxisY.Title = “Read count”
Chart1.ChartAreas(1).AxisX.Title = “Length (nt)” '设置ChartArea里坐标轴标题
Chart1.ChartAreas(1).AxisY.Title = “Read count”
minValue = DateTime.Now
'30预览区域
maxValue = minValue.AddSeconds(30)
Chart1.ChartAreas(0).AxisX.Minimum = minValue.ToOADate()
Chart1.ChartAreas(0).AxisX.Maximum = maxValue.ToOADate()
Chart1.ChartAreas(1).AxisX.Minimum = minValue.ToOADate()
Chart1.ChartAreas(1).AxisX.Maximum = maxValue.ToOADate()
Chart1.Series.Clear()
Dim series1 As New Series(“Read Count”)
series1.ChartType = SeriesChartType.Line '设置Series的绘图类型
series1.BorderWidth = 1
series1.Color = Color.Red
series1.XValueType = ChartValueType.Time
series1.ChartArea = “ChartArea1”
Dim series2 As New Series(“Read Count2”)
series2.ChartType = SeriesChartType.Line '设置Series的绘图类型
series2.BorderWidth = 1
series2.Color = Color.Blue
series2.XValueType = ChartValueType.Time
series2.ChartArea = “ChartArea2”
Chart1.Series.Add(series1)
Chart1.Series.Add(series2)
b. 未添加ChartArea
在上一段代码之前添加如下代码
[vb] view plain copy
Chart1.ChartAreas.Clear() '清空ChartArea
Dim ChartAreas1 As New ChartArea(“ChartArea1”) '定义新的ChartArea
Dim ChartAreas2 As New ChartArea(“ChartArea2”) '定义新的ChartArea
Chart1.ChartAreas.Add(ChartAreas1) '将新定义的ChartArea加入Chart1
Chart1.ChartAreas.Add(ChartAreas2) '将新定义的ChartArea加入Chart1
- 添加points
[vb] view plain copy
For Each ptA In Chart1.ChartAreas
Dim ptSeries As Series
'对每series进行数据扫描
For Each ptSeries In Chart1.Series
ptSeries.Points.AddXY(x y)
Next ptSeries
Next
- 动态修改X轴坐标(例如:随时间变化)
[vb] view plain copy
Dim timeStamp As DateTime = DateTime.Now
Dim removeBefore As Double = timeStamp.AddSeconds((CDbl(15) * -1)).ToOADate()
'remove oldest values to maintain a constant number of data points
While ptSeries.Points(0).XValue < removeBefore
ptSeries.Points.RemoveAt(0)
End While
Dim ptA As ChartArea
For Each ptA In Chart1.ChartAreas
ptA.AxisX.Minimum = ptSeries.Points(0).XValue
ptA.AxisX.Maximum = DateTime.FromOADate(ptSeries.Points(0).XValue).AddSeconds(30).ToOADate()
Next
- 清空数据
[vb] view plain copy
Chart1.Series(0).Points.Clear()
效果图