Laden...

[gelöst] Windows Form Chart - AddXY mit X-Wert kleiner als größter X-Wert

Erstellt von andreasd vor 10 Jahren Letzter Beitrag vor 10 Jahren 945 Views
A
andreasd Themenstarter:in
2 Beiträge seit 2013
vor 10 Jahren
[gelöst] Windows Form Chart - AddXY mit X-Wert kleiner als größter X-Wert

Hallo,

ich schreibe momentan eine WPF-Anwendung mit einem Windows Form Chart innerhalb eines WindowsFormsHost.
Mit der Anwendung sollen Messwerte aus einer Datei im Windows Form Chart dargestellt werden.
Da die Datei mit den Messwerten ziemlich groß werden kann, sollen zunächst nur eine gewisse Anzahl von Werten eingelesen werden. Sobald der Nutzer in das Diagramm mit dem Cursor hineinzoomt, werden Daten mittels des AxisViewChanged-Events nachgeladen.

Das Problem, das dabei auftritt:
Da zunächst "grobe" Werte gezeichnet werden, befindet sich der maximale X-Wert bei z.B. Zeitpunkt 2000. Wenn ich nun Daten im Zeitbereich 100...500 nachzeichnen will, indem ich mit

public int AddXY(double xValue, double yValue)


Punkte zur Serie hinzufüge, zeichnet das Chart eine (hässliche) Verbindungslinie von X=2000 zu dem neu hinzugefügten Punkt bei X=100. Durch mehrfaches Hinein- und Herauszoomes aus dem Diagramm sieht das Ergebnis dann ziemlich chaotisch aus.

Gibt es eine Möglichkeit, dem Chart beizubringen, diese "rückwärts"-Verbindungslinie nicht zu zeichnen? Oder muss ich für die neu hinzuzufügenden Punkte jedesmal nachsehen, an welche Position der neue Punkt gehört und diesen dann über

public void InsertXY(int index, Object xValue, params Object[] yValue)

hinzufügen?

EDITH:
An dieser Stelle sei noch angemerkt, dass es sich bei dem Diagrammtyp um ein "Line"-Diagramm handelt.

Nachdem ich mir nochmal die (doch recht umfangreiche) Dokumentation zur Chart angeschaut habe, habe ich eine mögliche Lösung gefunden: Ich sortiere alle Serien nach ihrem X-Wert:


            foreach (var item in chart.Series)
            {
                item.Sort(PointSortOrder.Ascending, "X");
            }

Danach taucht die Verbindungslinie nicht mehr auf.

6.911 Beiträge seit 2009
vor 10 Jahren

Hallo andreasd,

schön dass du eine Lösung gefunden hast, und dein Thema dementsprechend.auch als [gelöst] markiert hast. Noch besser wäre es, wenn du eine Antwort erstellt hättest, damit der Thread nicht mehr in den "Fragen ohne Antwort" auftaucht. Durch diese Antwort ist das Ziel aber auch erreicht.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"