Das Beispiel verwendet Linq und System.Data.DataTableExtensions !
Private Sub BindToPoints
'Datenreihen
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}
'Daten im eine 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
'Extremwerte der Spalten ermitteln (Linq)
Dim xmax As Integer = _
CInt(Aggregate row As DataRow In dtGearSpeed.AsEnumerable _
Select row(0) Into Max())
Dim ymax As Integer = _
CInt(Aggregate row As DataRow In dtGearSpeed.AsEnumerable _
Select row(1) Into Max())
With cht
.ChartAreas.Clear()
.Series.Clear()
Dim GearArea As ChartArea = New ChartArea("GearArea")
.ChartAreas.Add(GearArea)
Dim Gear As Series = New Series("SerGear")
.Series.Add(Gear)
With .Series("SerGear")
'Tabellenspalten an Points binden
.Points.DataBind(dtGearSpeed.AsEnumerable, _
dtGearSpeed.Columns(0).ColumnName, _
dtGearSpeed.Columns(1).ColumnName, "")
For i As Integer = 0 To .Points.Count - 1
Dim dp As DataPoint = .Points(i)
If dp.XValue > 0 And dp.YValues(0) < ymax Then
dp.Label = dp.XValue.ToString
End If
If dp.YValues(0) = ymax Then
dp.MarkerStyle = MarkerStyle.Circle
dp.MarkerSize = 10
dp.MarkerColor = Color.LimeGreen
Else
dp.MarkerStyle = MarkerStyle.None
End If
Next i
.ChartType = SeriesChartType.Line
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 = 4000
.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
Beitrag wurde zuletzt am 12.10.14 um 18:38:02 editiert. |