Moin moin
Habe das mit dem Ausdruck nun hinbekommen. Ich Chart werden meine Daten nun auch richtig angezeigt. Siehe Bildanhang.
Jetzt die Frage, wie kann ich den Code hier ggf noch verbessern.
Spoiler anzeigen
Ich dachte erst an so etwas aber da stehe ich gerade auf dem Schlauch bzgl der Bezeichnungen. Es soll ja schon bei "Temp. Morgens" "Temp. Mittags" usw bleiben.
Spoiler anzeigen
Habe das mit dem Ausdruck nun hinbekommen. Ich Chart werden meine Daten nun auch richtig angezeigt. Siehe Bildanhang.
Jetzt die Frage, wie kann ich den Code hier ggf noch verbessern.
VB.NET-Quellcode
- Public Sub CalculateAndDisplayChart(stationNr As Integer, chart As Chart, dsClima As DataSet)
- ' DataTable abrufen
- Dim dt As DataTable = dsClima.Tables("Messwerte")
- ' Gruppieren der Daten nach Datum und Berechnung der Durchschnittswerte
- Dim groupedData = From row In dt.AsEnumerable()
- Where row.Field(Of Integer)("Station") = stationNr
- Group row By Datum = row.Field(Of Date)("Datum") Into Group
- Select New With
- {
- .Date = Datum,
- .AvgTemp1 = Group.Average(Function(r) If(r.Field(Of Double?)("Temperatur1"), 0)),
- .AvgTemp2 = Group.Average(Function(r) If(r.Field(Of Double?)("Temperatur2"), 0)),
- .AvgTemp3 = Group.Average(Function(r) If(r.Field(Of Double?)("Temperatur3"), 0)),
- .AvgAir1 = Group.Average(Function(r) If(r.Field(Of Double?)("Humidity1"), 0)),
- .AvgAir2 = Group.Average(Function(r) If(r.Field(Of Double?)("Humidity2"), 0)),
- .AvgAir3 = Group.Average(Function(r) If(r.Field(Of Double?)("Humidity3"), 0))
- }
- ' Ø Temperatur Ø Luftfeuchte hinzufügen
- If chart.Series.FindByName("Ø Temperatur") Is Nothing Then
- Dim avgtempSeries As New Series("Ø Temperatur")
- avgtempSeries.ChartType = SeriesChartType.Point
- chart.Series.Add(avgtempSeries)
- End If
- If chart.Series.FindByName("Ø Luftfeuchte") Is Nothing Then
- Dim avgairSeries As New Series("Ø Luftfeuchte")
- avgairSeries.ChartType = SeriesChartType.Point
- chart.Series.Add(avgairSeries)
- End If
- ' Temperaturserie hinzufügen
- If chart.Series.FindByName("Temp. Morgens") Is Nothing Then
- Dim tempSeries As New Series("Temp. Morgens")
- tempSeries.ChartType = ChartStyle
- chart.Series.Add(tempSeries)
- End If
- If chart.Series.FindByName("Temp. Mittags") Is Nothing Then
- Dim tempSeries As New Series("Temp. Mittags")
- tempSeries.ChartType = ChartStyle
- chart.Series.Add(tempSeries)
- End If
- If chart.Series.FindByName("Temp. Abends") Is Nothing Then
- Dim tempSeries As New Series("Temp. Abends")
- tempSeries.ChartType = ChartStyle
- chart.Series.Add(tempSeries)
- End If
- ' Luftfeuchtigkeitsserie hinzufügen
- If chart.Series.FindByName("Luftfeuchte Morgens") Is Nothing Then
- Dim airSeries As New Series("Luftfeuchte Morgens")
- airSeries.ChartType = ChartStyle
- chart.Series.Add(airSeries)
- End If
- If chart.Series.FindByName("Luftfeuchte Mittags") Is Nothing Then
- Dim airSeries As New Series("Luftfeuchte Mittags")
- airSeries.ChartType = ChartStyle
- chart.Series.Add(airSeries)
- End If
- If chart.Series.FindByName("Luftfeuchte Abends") Is Nothing Then
- Dim airSeries As New Series("Luftfeuchte Abends")
- airSeries.ChartType = ChartStyle
- chart.Series.Add(airSeries)
- End If
- For Each dayData In groupedData
- ' Daten für jeden Tag hinzufügen
- chart.Series("Ø Temperatur").Points.AddXY(dayData.Date.ToString("dd"), (dayData.AvgTemp1 + dayData.AvgTemp2 + dayData.AvgTemp3) / 3)
- chart.Series("Temp. Morgens").Points.AddXY(dayData.Date.ToString("dd"), dayData.AvgTemp1)
- chart.Series("Temp. Mittags").Points.AddXY(dayData.Date.ToString("dd"), dayData.AvgTemp2)
- chart.Series("Temp. Abends").Points.AddXY(dayData.Date.ToString("dd"), dayData.AvgTemp3)
- chart.Series("Ø Luftfeuchte").Points.AddXY(dayData.Date.ToString("dd"), (dayData.AvgAir1 + dayData.AvgAir2 + dayData.AvgAir3) / 3)
- chart.Series("Luftfeuchte Morgens").Points.AddXY(dayData.Date.ToString("dd"), dayData.AvgAir1)
- chart.Series("Luftfeuchte Mittags").Points.AddXY(dayData.Date.ToString("dd"), dayData.AvgAir2)
- chart.Series("Luftfeuchte Abends").Points.AddXY(dayData.Date.ToString("dd"), dayData.AvgAir3)
- Next
- chart.ChartAreas(0).AxisY.Interval = YInterval
- chart.ChartAreas(0).AxisX.Interval = 1
- chart.Series("Temp. Morgens").Color = Color.Lime
- chart.Series("Temp. Mittags").Color = Color.Red
- chart.Series("Temp. Abends").Color = Color.Blue
- chart.Series("Luftfeuchte Morgens").Color = Color.SandyBrown
- chart.Series("Luftfeuchte Mittags").Color = Color.DodgerBlue
- chart.Series("Luftfeuchte Abends").Color = Color.Magenta
- chart.Series("Ø Temperatur").Color = Color.DarkOrange
- chart.Series("Ø Luftfeuchte").Color = Color.Crimson
- End Sub
Ich dachte erst an so etwas aber da stehe ich gerade auf dem Schlauch bzgl der Bezeichnungen. Es soll ja schon bei "Temp. Morgens" "Temp. Mittags" usw bleiben.
VB.NET-Quellcode
Asperger Autistin. Brauche immer etwas um gewisse Sachen zu verstehen.