Du mußt unterscheiden, ob eine Datenbindung an eine Datatable vorliegt
(XValueMember, YValueMembers) ODER ob die Datenpunkte explizit eingerichtet
werden sollen.
Hier ein Beispiel für die Einrichtung von Datenpunkten, deren Werte
aus einer Datatable entnommen werden (keine Datenbindung).
Private Sub diagramm5()
Dim xv() As Integer = _
{100, 100, 160, 160, 210, 210, 260, 260, 310, 310}
Dim yv() As Integer = _
{8000, 5000, 8000, 5200, 8000, 6000, 8000, 6500, 8000, 7000}
'diese Daten in Zeilen einer Datatable eintragen
Dim dtGearSpeed As New DataTable
With dtGearSpeed
With .Columns
.Add("SP1", GetType(Integer))
.Add("SP2", GetType(Integer))
End With
For i As Integer = 0 To xv.Length - 1
.Rows.Add(xv(i), yv(i))
Next i
End With
'Chart erstellen
With cht
Dim ymax As Integer = yv.Max
.ChartAreas.Clear()
.Series.Clear()
' Add Chart Area to the Chart
Dim GearArea As ChartArea = New ChartArea("GearArea")
.ChartAreas.Add(GearArea)
' Add Series to the Chart
Dim Gear As Series = New Series("SerGear")
.Series.Add(Gear)
With .Series("SerGear")
'Datatable-Zeilen durchlaufen
For i As Integer = 0 To dtGearSpeed.Rows.Count - 1
Dim dp As New DataPoint
'Zugriff auf die Zeile in der Datatable
'um die Werte des Datenpunktes zu erhalten
dp.XValue = CInt(dtGearSpeed.Rows(i).Item(0))
dp.YValues = {CInt(dtGearSpeed.Rows(i).Item(1))}
If xv(i) > 0 And yv(i) < ymax Then
dp.Label = xv(i).ToString
End If
If yv(i) = ymax Then
dp.MarkerStyle = MarkerStyle.Circle
dp.MarkerSize = 10
dp.MarkerColor = Color.LimeGreen
Else
dp.MarkerStyle = MarkerStyle.None
End If
'Datenpunkt ins Grid eintragen
.Points.Add(dp)
Next i
.ChartType = SeriesChartType.Line
.BorderWidth = 3
End With
With .ChartAreas("GearArea").AxisX
.Minimum = 0
.Maximum = 400
.MinorGrid.Enabled = False
.MajorGrid.Interval = 50
.MajorGrid.LineDashStyle = ChartDashStyle.Dot
.MajorTickMark.Enabled = False
.MinorTickMark.Enabled = False
With .LabelStyle
.IntervalOffset = 0
.Interval = 50
.IntervalType = DateTimeIntervalType.Number
End With
End With
With .ChartAreas("GearArea").AxisY
.Minimum = 0
.Maximum = 9000
.MinorGrid.Enabled = False
.MajorGrid.Interval = 1000
.MajorGrid.LineDashStyle = ChartDashStyle.Dash
With .LabelStyle
.IntervalOffset = 0
.Interval = 1000
.IntervalType = DateTimeIntervalType.Number
End With
End With
End With
End Sub
End Class |