Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C#] zedGraph zeichnet falsche Werte / zweite Y-Achse einfügen


stav0815
2008-05-04, 20:58:55
Hallo,

ich habe nun mal fleißig weiterprogrammiert und bin nun auf einige Probleme bezüglich zedGraph gestoßen.
Ich habe nun das Problem, dass zedGraph mir die Werte auch von null an zeichnet, obwohl es keine Werte dafür gibt (und dann die Werte von null an hoch zeichnet). Siehe den Screenshot:

http://www.turbogurke.com/beispiel.gif

Und die Werte sehen so aus:

Time Setp. Cont x
sec °C °C %
0,03 600 551 34,9
0,06 600 550 34,9
0,08 600 551 34,9
0,11 600 551 34,9
0,14 600 551 34,9
0,17 600 551 34,9
0,19 600 550 34,9
0,22 600 550 34,9
0,25 600 550 34,9
0,27 600 550 34,9
0,30 600 550 34,9
0,33 600 551 34,9
0,36 600 550 34,9
0,38 600 550 34,9
0,41 600 551 34,9
0,44 600 550 34,9
0,45 600 550 34,9
0,48 600 551 34,9
0,52 600 551 34,9
0,53 600 551 34,9
0,56 600 550 34,9
0,59 600 550 34,9

Dabei ist die Spalte 1 die X-Achse und die Spalte 3 die Y-Achse.


Code dafür ist folgender, wobei die zweite Spalte eine zweite Kurve zeichnet:

private void zeichnen_Click(object sender, EventArgs e)
{
// get a reference to the GraphPane
GraphPane myPane = zg1.GraphPane;
// Set the Titles
myPane.Title.Text = "Diagramm";
myPane.XAxis.Title.Text = "Zeit in ms";
myPane.YAxis.Title.Text = "Temperatur in °C";
myPane.Y2Axis.Title.Text = "Leistung in %";
myPane.XAxis.MajorGrid.IsVisible = true;
myPane.YAxis.MajorGrid.IsVisible = true;
myPane.Y2Axis.MajorGrid.IsVisible = true;;
myPane.CurveList.Clear();

// Make up some data arrays based on the Sine function
PointPairList list1 = new PointPairList();
PointPairList list2 = new PointPairList();
for (int i = 4; i < 100; i++)
{
list1.Add(xachse[i], yachse[i]);
list2.Add(xachse[i], yachse2[i]);

}
LineItem myCurve = myPane.AddCurve("Temperatur", //fügt eine neue Kurve hinzu
list1, Color.Red, SymbolType.None);
LineItem myCurve2 = myPane.AddCurve("Soll-Wert", list2, Color.Blue, SymbolType.None);
zg1.AxisChange(); //führt eine neukonfiguration der Achsen aus
zg1.Refresh(); //führt ein Refresh des Diagramms aus
}


Und ich will, dass er das Ding ned von null an zeichnet sondern erst ab da, wo er Werte hat.



Und mein zweites Problem: ich würde jetzt gern die 4. Spalte in das Diagramm mit einer zweiten Y-Achse auf der rechten Seite zeichnen (siehe meinen Code, da ist schon was vorbereitet was ich mir so gedacht habe). Alternativ werd ich das in ein eigenes Diagramm zeichnen.

Kann mir jemand helfen?