Alternativen zur .NET MSDN Chart-Komponente

Alles zu Zusi-Performance, Frameraten, ruckelnden Bildern, Grafik, Treibern usw.
Antworten
Nachricht
Autor
Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Alternativen zur .NET MSDN Chart-Komponente

#1 Beitrag von Dennis Bork »

Hallo liebe Programmierer,

bisher nutze ich für ZusiGraph ja die .NET Chart-Klasse (System.Windows.Forms.DataVisualization.Charting.Chart).

Allerdings haben Langzeit-Tests gezeigt dass ab circa 5000 Datenpunkten die Performance stark einbricht.

Es gibt ja LigntningCharts die für Echtzeit-Darstellung wohl hervorragend sind, seit Anfang 2012 ist aber wohl
die kostenlose Basic-Version nicht mehr erhältlich. Als OpenSource wäre ZedGraph wohl gut, ist allerdings mit
meinem VisualStudio 2012 nicht wirklich kompatibel; die Samples zu kompilieren führte zu etlichen Problemen.

Kennt jemand noch aus eigener Erfahrung andere / bessere Komponenten? Hat jemand Erfahrung / Tipps zur Integration
von ZedGraph in VisualStudio 2012 - Projekte?

Beste Grüße

Dennis

Mr. X
Beiträge: 1337
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Alternativen zur .NET MSDN Chart-Komponente

#2 Beitrag von Mr. X »

Alternativ könntest Du versuchen, die Anzahl der dargestellten Datenpunkte zu reduzieren. Intern speichern kannst Du den Rest ja schon, falls der Nutzer ranzoomen will, aber tausende Datenpunkte gleichzeitig kann man ja eh nicht sehen.

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Alternativen zur .NET MSDN Chart-Komponente

#3 Beitrag von Dennis Bork »

Mr. X hat geschrieben:Alternativ könntest Du versuchen, die Anzahl der dargestellten Datenpunkte zu reduzieren.
Das versuche ich bereits durch Erhöhung des Timer-Intervalls (aber mehr als 250ms sind nicht erträglich finde ich) sowie einige andere Maßnahmen - allerdings wären bei 4 dargestellten Größen bei einem Intervall von 200ms ja trotzdem schon 72000 Datenpunkte vorhanden nach 60 Minuten (3600s x (1000 / Intervall) x 4) - ich versuche mich mal darin Datenpunkte nur bei Änderung einer Größe neu zu erzeugen; das könnte vor allem bei den Drücken und Konstantfahrt gut klappen. Programmiervorschläge hierzu sind herzlich willkommen :]

Mr. X
Beiträge: 1337
Registriert: 04.05.2008 22:12:22
Kontaktdaten:

Re: Alternativen zur .NET MSDN Chart-Komponente

#4 Beitrag von Mr. X »

Ich meinte eher, z.B. jeden zweiten Datenpunkt zu löschen ab einer gewissen Anzahl (also die Auflösung der bestehenden Daten mit der Zeit runterskalieren). Ob das mit sinnvollem Aufwand möglich ist, ist aber bloße Spekulation, ich kenne mich mit den Charts nicht aus.
Zuletzt geändert von Mr. X am 11.01.2013 21:12:20, insgesamt 1-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3202
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Alternativen zur .NET MSDN Chart-Komponente

#5 Beitrag von Johannes »

Dennis Bork hat geschrieben:Hat jemand Erfahrung / Tipps zur Integration
von ZedGraph in VisualStudio 2012 - Projekte?
Ich habe das grade mal ausprobiert (VS 2012 Premium). Es hat wunderbar funktioniert. Was ich gemacht habe:
  • ZedGraph-Sourcen heruntergeladen
  • Das Projekt mit VS geöffnet, dabei das Angebot zum Konvertieren in eine neuere Version angenommen
  • In den Projekteigenschaften das Zielframework auf .NET 4 geändert
  • Kompiliert – tut
Dasselbe auch mit dem „Forms Sample Project“ – da habe ich dann das ZedGraph-Projekt zur Solution hinzugefügt und die Referenz auf die ZedGraph-DLL durch eine Referenz auf das ZedGraph-Projekt ersetzt. Vielleicht hilft dir das weiter?

ZedGraph wäre vielleicht gar nicht schlecht, wenn die Sache auch mal unter Mono (Linux) laufen soll. Da ist die Charting-Komponente von Microsoft nämlich bislang nicht implementiert. Ob ZedGraph funktioniert, habe ich allerdings noch nicht probiert.

Grüße
Johannes

P.S. Ich habe dir auf GitHub einen Pull Request zu ZusiMeter geschickt. Ich weiß nicht, ob du da eine Benachrichtigung per E-Mail erhältst?

Benutzeravatar
Dennis Bork
Beiträge: 945
Registriert: 13.09.2015 21:46:58

Re: Alternativen zur .NET MSDN Chart-Komponente

#6 Beitrag von Dennis Bork »

Johannes hat geschrieben:Ich habe das grade mal ausprobiert (VS 2012 Premium). Es hat wunderbar funktioniert.
Bei mir geht die Migration auch ganz glatt vonstatten -
Dasselbe auch mit dem „Forms Sample Project“ – da habe ich dann das ZedGraph-Projekt zur Solution hinzugefügt und die Referenz auf die ZedGraph-DLL durch eine Referenz auf das ZedGraph-Projekt ersetzt. Vielleicht hilft dir das weiter?
Ja, vielleicht - bisher bekam ich nämlich beim Start mit dem Debugger einen Laufzeitfehler ... probiere das nächste Woche mal azs wenn ich wieder am Entwicklungsrechner bin.
ZedGraph wäre vielleicht gar nicht schlecht, wenn die Sache auch mal unter Mono (Linux) laufen soll. Da ist die Charting-Komponente von Microsoft nämlich bislang nicht implementiert. Ob ZedGraph funktioniert, habe ich allerdings noch nicht probiert.
Ja, irgendwie liebäugele ich auch damit ... sieht recht 'clean' aus und nach guter Performance ... wenn ich die überladenen Charts von LightningCharts so sehe graust es mir (obwohl die halt schnell sein sollen) - aber Geld ausgeben wollte ich dafür dann auch nicht.
wenn die Sache auch mal unter Mono (Linux) laufen soll.
Wenn Du Lust hast das ab der Version 0.6.x oder so (früher denke ich mal wird ZG noch nicht so vollständig sein wie ich es gerne hätte) dann liebend gerne! Ich selbst bin kein Linux-Nutzer (mehr), würde ZG und ZM aber gerne auf OS X sehen und hätte beide Programme gerne in Java geschrieben, aber irgendwie war mir C# mitsamt VS 2012 zugänglicher als Java und Eclipse oder NetBeans...
mal abgesehen davon dass Andreas Karg's tolle Beispielprogramme in C# / VB geschrieben sind ohne die ich als Anfänger den Einstieg noch schwerer gefunden hätte.
P.S. Ich habe dir auf GitHub einen Pull Request zu ZusiMeter geschickt. Ich weiß nicht, ob du da eine Benachrichtigung per E-Mail erhältst?
[/quote]
Leider nicht - ich weiss immer noch nicht so recht wie ich mit dem Pull Request umgehe ... der Screenshot sieht super aus. Muss mal sehen wie ich das mit dem aktuellen Branch mergen kann... habe ein bisschen Angst davor :D Mitte nächster Woche habe ich Zeit dafür. Danke jedenfalls schonmal für Deine Arbeit!
Zuletzt geändert von Anonymous am 11.01.2013 22:53:57, insgesamt 2-mal geändert.

Benutzeravatar
Johannes
Beiträge: 3202
Registriert: 14.03.2009 22:36:06
Aktuelle Projekte: Zusitools (http://git.io/zusitools)

Re: Alternativen zur .NET MSDN Chart-Komponente

#7 Beitrag von Johannes »

Hallo Dennis,

ich hab mal geschaut, ob sich ZedGraph unter Linux kompilieren lässt. Zwei Minuten später (kein Witz!):

Bild

Liegt wohl daran, dass ZedGraph für .NET 2.0 geschrieben ist, da sieht es mit der Unterstützung seitens Mono natürlich besser aus. Unter Mac OS X dürfte es dann wohl auch laufen, wobei ich das nicht testen kann.

Was den Pull Request betrifft, so ist das vielleicht zunächst ein wenig kompliziert, aber die Änderungen von Hand einzupflegen ist wahrscheinlich auch nicht einfacher :) Falls es in CMainWindow.cs übrigens zu Merge-Konflikten kommt, bietet es sich vielleicht an, die Originalversion beizubehalten und im Designer den RadioButton „rbRRZuglänge“ von Hand einzufügen. VS wirft da ja leider einiges durcheinander, auch wenn man nur ein paar Controls verschiebt.

Grüße
Johannes

Antworten