import namespace
-
Imports System.Windows.Forms.DataVisualization.Charting
找个namespace包含用于图表 Windows 窗体控件方法和属性(如chart控件)
2. 设置chart控件


a. 在ChartArea属性里,添加ChartArea1, ChartArea2.
b. 设置align相关属性。



3. 使用代码配置ChartArea
a. 已添加ChartArea。
这种情况直接设置
-
Chart1.ChartAreas(0).AxisX.Title = "Length (nt)"
-
Chart1.ChartAreas(0).AxisY.Title = "Read count"
-
-
-
Chart1.ChartAreas(1).AxisX.Title = "Length (nt)"
-
Chart1.ChartAreas(1).AxisY.Title = "Read count"
-
-
-
minValue = DateTime.Now
-
-
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
-
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
-
series2.BorderWidth = 1
-
series2.Color = Color.Blue
-
series2.XValueType = ChartValueType.Time
-
-
series2.ChartArea = "ChartArea2"
-
-
Chart1.Series.Add(series1)
-
Chart1.Series.Add(series2)
b. 未添加ChartArea
在上一段代码之前添加如下代码
-
Chart1.ChartAreas.Clear()
-
Dim ChartAreas1 As New ChartArea("ChartArea1")
-
Dim ChartAreas2 As New ChartArea("ChartArea2")
-
Chart1.ChartAreas.Add(ChartAreas1)
-
Chart1.ChartAreas.Add(ChartAreas2)
4. 添加points
-
For Each ptA In Chart1.ChartAreas
-
Dim ptSeries As Series
-
-
For Each ptSeries In Chart1.Series
-
ptSeries.Points.AddXY(x y)
-
Next ptSeries
-
Next
5. 动态修改X轴坐标(例如:随时间变化)
-
Dim timeStamp As DateTime = DateTime.Now
-
Dim removeBefore As Double = timeStamp.AddSeconds((CDbl(15) * -1)).ToOADate()
-
-
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
6. 清空数据
-
Chart1.Series(0).Points.Clear()
效果图

