Darstellung/Vergleich von Charts

  • VB.NET

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

    Darstellung/Vergleich von Charts

    Hallo zusammen!

    Habe ein kleines Problem mit der Darstellung von Charts.
    Und zwar habe ich verschiedene Messwerte, die mit Datum/Zeitstempel in einer Access-DB gespeichert werden.
    Nun möchte ich die erfassten Messwerte (die nicht immer gleichzeitig erfasst werden) in Charts untereinander darstellen, um deren Verlauf zueinander vergleichen zu können. Dazu ist es möglich, einen Zeitbereich zu wählen (Dropdown--Felder).
    Allerdings möchte ich die x-Achsen so skalieren, dass die Zeitpunkte auf der Achse exakt untereinander angezeigt werden.
    Irgendwie verteilt das Chart zur Laufzeit die Werte über den ganzen Anzeihebereich und demnach sind die angezeigten Werte in den einzelnen Charts versetzt.
    Ist es möglich, die X-Achse zu fixieren, dass eine automatische Anpassung nicht erfolgt?

    Im Anhang ein Beispiel. Die markierten Stellen geben jeweils einen Wert am gleichen Datum wieder. Diese sollten aber eigentlich untereinander dargestellt werden.
    Bilder
    • 9A94E209-6661-494F-9BE5-950F4A4A63C4.jpeg

      127,16 kB, 1.366×768, 10 mal angesehen
    Das sind doch 2 Charts, oder? Dann setz das Maximum beider gleich:

    VB.NET-Quellcode

    1. Chart2.ChartAreas(0).AxisX.Maximum = Chart1.ChartAreas(0).AxisX.Maximum

    Allerdings nicht direkt nach der Dateneinspielung, sonst wird das nicht angewendet. Also entweder z.B. bei einem Button-Click oder mit Asyc-Await-Zeitverzögerung.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Hi @VaporiZed

    ja, es sind 2 Charts, die nacheinander gefüllt werden. Soweit klingt Dein Tip erstmal einleuchtend, allerdings ergibt sich daraus die nächste Problematik....
    Dadurch, daß man den Datumsbereich frei wählen kann, ergibt sich ja quasi immer ein neues „Maximum“ welches vorab gesetzt werden muss, oder verstehe ich da was falsch?
    Na, nicht nur das, sondern auch Minimum. Die Lösung dazu: Da das Chart für Datumsangaben als Nullwert den 31.12.1899 sieht (da Minimum und Maximum Double-Werte sind, muss man ermitteln, was da null ist), kommt man eben zu:

    VB.NET-Quellcode

    1. Chart1.ChartAreas(0).AxisX.Minimum = (DateTimePicker1.Value - #12/31/1899#).Days
    2. Chart1.ChartAreas(0).AxisX.Maximum = (DateTimePicker2.Value - #12/31/1899#).Days
    3. Chart2.ChartAreas(0).AxisX.Minimum = (DateTimePicker1.Value - #12/31/1899#).Days
    4. Chart2.ChartAreas(0).AxisX.Maximum = (DateTimePicker2.Value - #12/31/1899#).Days
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.