Moin,
mein Code liefert die Fehlermeldung: ArgumentException wurde nicht behandelt. Ein Diagrammelement mit dem Namen 'Plot 1' ist bereits in 'SeriesCollection' vorhanden; wenn ich das zweite Mal die Kurve berechnen lasse.
Was eigentlich passieren sollte: Ich übergebe der Funktion eine 10x10 Matrix mit 5 Messungen. Daraus soll eine Drehzahl-Drehmoment-Kennlinie gezeichnet werden. Ich habe die Messwerte so angeordnet, dass in Zeile 0-4 die Drehzahlen und in Zeile 5-9 die Momente stehen. D.h. dass Zeile 0 und 5 (, 1 und 6, 2 und 7, ...) die Werte für eine Kurve liefern. Nach 5 Berechnungen möchte ich folglich 5 Kurven sehen und in der Legende Plot 1, Plot 2, ..., Plot 5.
Momentan sehe ich für meinen ersten Plot in der Legende Plot 1-9, und meine einzige Kurve sieht aus wie am Christopher Street Day. Wie bekomme ich jeden Plot einfarbig?
Edit: GESCHAFFT.
Für die Verzweifelnden mit ähnlichem Problem hier die For-Schleife
mein Code liefert die Fehlermeldung: ArgumentException wurde nicht behandelt. Ein Diagrammelement mit dem Namen 'Plot 1' ist bereits in 'SeriesCollection' vorhanden; wenn ich das zweite Mal die Kurve berechnen lasse.
Was eigentlich passieren sollte: Ich übergebe der Funktion eine 10x10 Matrix mit 5 Messungen. Daraus soll eine Drehzahl-Drehmoment-Kennlinie gezeichnet werden. Ich habe die Messwerte so angeordnet, dass in Zeile 0-4 die Drehzahlen und in Zeile 5-9 die Momente stehen. D.h. dass Zeile 0 und 5 (, 1 und 6, 2 und 7, ...) die Werte für eine Kurve liefern. Nach 5 Berechnungen möchte ich folglich 5 Kurven sehen und in der Legende Plot 1, Plot 2, ..., Plot 5.
VB.NET-Quellcode
- Private Sub drawKennlinie(ByVal Matrix As Double(,))
- Dim Xachse_max As Double
- Dim Xachse_min As Double
- Graph.Series.Clear()
- For Zeile As Integer = 0 To 4 'Zeichenfläche formatieren
- Xachse_max = Math.Max(Xachse_max, Zeile) 'ermittel Maximum
- Xachse_min = Math.Min(Xachse_min, Zeile) 'ermittel Minimum
- Next
- Graph.ChartAreas(0).AxisX.Maximum = Xachse_max '+ 500 'verlängert die X-Achse um zusätzlich 500
- If Xachse_min >= 0 Then
- Graph.ChartAreas(0).AxisX.Minimum = 0 'Setzt Minimum auf 0 sofern alle Werte positiv
- Else : Graph.ChartAreas(0).AxisX.Minimum = Xachse_min '- 500 'verlängert die X-Achse um zusätzlich 500 in negativer Richtung
- End If
- For Zeile As Integer = 0 To 4 'Koordinaten einzeichnen
- For Spalte As Integer = 0 To 9 - 1
- If Matrix(Zeile, Spalte) <> 0 And Matrix(Zeile + 5, Spalte) <> 0 Then
- Graph.Series.Add(New Series("Plot " & Spalte + 1))
- Graph.Series(Spalte).Points.AddXY(Matrix(Zeile, Spalte), Matrix(Zeile + 5, Spalte))
- Graph.Series(Spalte).Points.AddXY(Matrix(Zeile, Spalte + 1), Matrix(Zeile + 5, Spalte + 1))
- Graph.Series(Spalte).BorderWidth = 2
- Graph.Series(Spalte).ChartType = SeriesChartType.Spline
- End If
- Next
- Next
- Graph.Update() 'Grafik anzeigen
- End Sub
Momentan sehe ich für meinen ersten Plot in der Legende Plot 1-9, und meine einzige Kurve sieht aus wie am Christopher Street Day. Wie bekomme ich jeden Plot einfarbig?
Edit: GESCHAFFT.
Für die Verzweifelnden mit ähnlichem Problem hier die For-Schleife
VB.NET-Quellcode
- For Zeile As Integer = 0 To 4 'Koordinaten einzeichnen
- Graph.Series.Add(New Series("Plot " & Zeile + 1))
- For Spalte As Integer = 0 To 9 - 1
- If Matrix(Zeile, Spalte) <> 0 And Matrix(Zeile + 5, Spalte) <> 0 Then
- Graph.Series("Plot " & Zeile + 1).Points.AddXY(Matrix(Zeile, Spalte), Matrix(Zeile + 5, Spalte))
- Graph.Series("Plot " & Zeile + 1).Points.AddXY(Matrix(Zeile, Spalte + 1), Matrix(Zeile + 5, Spalte + 1))
- Graph.Series("Plot " & Zeile + 1).BorderWidth = 2
- Graph.Series("Plot " & Zeile + 1).ChartType = SeriesChartType.Spline
- End If
- Next
- Next
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Cistbesser“ ()