Datenreduzierung zur flüssigen Darstellung im MSChart?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Nils_Kr.

    Datenreduzierung zur flüssigen Darstellung im MSChart?

    Hallo zusammen,

    ich bräuchte einen Rat zum Thema Datenreduzierung / flüssigeTrenddarstellung in einem MSChart Control.

    Ich habe zwischen 1 und 30 Series und bekomme jede Sekunde einen neuen Wert für diese dazu. Auf einen Tag hochgerechnet ergibt das ca. 2,6 Millionen Datenpunkte pro Tag maximal.
    Diese komplett darzustellen ergibt natürlich keinen Sinn, da ja u.a. der Bildschirm die maximale Anzahl an Pixeln (darstellbaren Punkten) einschränkt.

    Der Bereich der X-Achse ist wahlweise auf 1 Minute, 1 Stunde, 1 Tag, etc. einstellbar und wandert bei neuen Daten automatisch mit.

    Gibt es eine Möglichkeit, die Daten so aufzubereiten, dass die Darstellung trotz der möglichen riesigen Datenmenge stets flüssig ist?

    Falls jemand eine kostenlose und bessere Alternative (sprich flüssige Darstellung mehrerer 100.000 Werte inkl. Zoom etc) zum MSChart Control kennt, bin ich für Links ebenfalls dankbar. :)

    Gruß
    Extra für diesen Fall gibt es "Fast Point Chart" & "Fast line Chart". Damit lassen sich auch mehrere hundert tausend Werte halbwegs flüssig darstellen. Ich habe vor ungefähr einem Jahr nach Chart-libraries gesucht, aber unterhalb von 1000€/Lizenz gab es damals nichts, dass mit WinForms Chart mithalten konnte.

    PS: Im "Microsoft Chart for Windows Forms Samples Environment" kann man die verschiedenen Charts ausprobieren. Mit 500.000 Punkten auf 2 Serien aufgeteilt, war die Darstellung nicht merklich langsamer.
    Option strict = on

    If it's stupid and it works it ain't stupid.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Nils_Kr“ ()

    Bist du dir den sicher, dass es wirklich die Darstellung ist, die an die Grenze kommt? Vielleicht ist es auch irgendein Algorithmus oder so, der bei großen Datenmengen bremst.

    Eine Möglichkeit wäre auch die Daten effizienter zu handeln. Du könntest die Zeitinveralle in eigene Charts aufgliedern und die Daten entsprechend komprimieren und dynamisch nachladen, sodass nicht immer alles angezeigt werden muss. Ob man 20.000 oder 2 Mio Punkte auf der obersten Zoomstufe hat, macht ja keinen Unterschied (vom Informationsgehalt).
    Option strict = on

    If it's stupid and it works it ain't stupid.