Chart Ober und Untergrenze

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Chart Ober und Untergrenze

    Hallo,

    habe mal ne Frage zum Chart (siehe Anhang). Mein Chart hat nur eine Kurve und das sind die blauen Striche. Nun gibt es einen unter und überwert, der nicht überschritten werden darf und den wollte ich im Chart mit einbauen. Zuerst habe ich das mit einer zweiten Serie versucht (Gelber Block) aber das ist n bissel blöd.
    Folgendes: Ich habe dieses Chart und möchte den Teil unter und über der Kurve farblich abgrenzen. Ist das möglich?
    In Arbeit...

    vico255 schrieb:

    den Teil unter und über der Kurve farblich abgrenzen.
    Was genau meinst Du damit?
    Du kannst beliebige Linien beliebiger Farbe als Chart-Kurve da reinmalen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ja lässt sich n bisschen blöd beschreiben. Ok nochmal :)

    Ich habe meine Kurve, OK. Solange die Werte im Bereich sind, ist alles ok. Sind die Werte allerdings zu hoch oder zu tief. Soll das im Chart halt zu sehen sein.

    Ein Beispiel. Ist der Wert unter 335 dann wäre er in dem Gelben Feld (2 Serie, so habe ich das mal gelöst aber iwie blöd) ist der Wert über 365 dann müsste oben auch so ein Gelber Balken sein. Möchte das halt nich über eine zusätzliche Serie klären und wollte fragen. Ob man die Teile im Chart auch iwie alles unter zb 335 und über 365 anders farblich gestalten kann? Die Mitte kann ruhig den weißen Hintergrund behalten.
    In Arbeit...
    @vico255 Vielleicht malst Du mal in Paint, wie das aussehen soll.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @vico255 So was ist mir nicht bekannt.
    Vielleicht malst Du einfach dicke bunte Linien rein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hi
    um was für ein Chart handelt es sich denn?
    Wenn es über Graphics selbstgezeichnet ist, könntest du einfach FillRectangle bzw. Clear verwenden, um sowas zu bewerkstelligen, daher vermute ich mal, dass es das nicht ist (und WPF wäre in einem anderen Unterforum anzutreffen).
    Häufig bieten Drittsoftwares eine Möglichkeit über Vererbung, etc. an, z.B. den Hintergrund selbst zu zeichnen. Steuerelemente bieten sowas oftmals an sich bereits über OnPaintBackground an.
    Poste evtl. mal alle nicht-geerbten, sichtbaren (d.h. public oder protected) Member des Steuerelements einschließlich Signatur.

    Viele Grüße
    ~blaze~
    Bin gerade durch Zufall drauf gekommen und dachte mir ich poste mir mal selbst und für andere hier die Lösung. :)

    VB.NET-Quellcode

    1. Chart1.ChartAreas(0).AxisY.StripLines.Add(New StripLine())
    2. Chart1.ChartAreas(0).AxisY.StripLines(0).BackColor = Color.FromArgb(80, 252, 180, 65)
    3. Chart1.ChartAreas(0).AxisY.StripLines(0).StripWidth = 100
    4. Chart1.ChartAreas(0).AxisY.StripLines(0).Interval = 1000
    5. Chart1.ChartAreas(0).AxisY.StripLines(0).IntervalOffset = 300
    6. Chart1.ChartAreas(0).AxisY.StripLines.Add(New StripLine())
    7. Chart1.ChartAreas(0).AxisY.StripLines(1).BackColor = Color.LightGreen
    8. Chart1.ChartAreas(0).AxisY.StripLines(1).StripWidth = 50
    9. Chart1.ChartAreas(0).AxisY.StripLines(1).Interval = 1000
    10. Chart1.ChartAreas(0).AxisY.StripLines(1).IntervalOffset = 325
    11. Chart1.ChartAreas(0).AxisY.StripLines.Add(New StripLine())
    12. Chart1.ChartAreas(0).AxisY.StripLines(2).BackColor = Color.CornflowerBlue
    13. Chart1.ChartAreas(0).AxisY.StripLines(2).StripWidth = 300
    14. Chart1.ChartAreas(0).AxisY.StripLines(2).Interval = 1000
    15. Chart1.ChartAreas(0).AxisY.StripLines(2).IntervalOffset = 0
    16. Chart1.ChartAreas(0).AxisY.StripLines.Add(New StripLine())
    17. Chart1.ChartAreas(0).AxisY.StripLines(3).BackColor = Color.CornflowerBlue
    18. Chart1.ChartAreas(0).AxisY.StripLines(3).StripWidth = 1000
    19. Chart1.ChartAreas(0).AxisY.StripLines(3).Interval = 1000
    20. Chart1.ChartAreas(0).AxisY.StripLines(3).IntervalOffset = 400


    OK @RodFromGermany :)

    Mit den StripLines zeichnet man Bereichsstreifen auf die ChartArea.
    - BackColor sollte jedem klar sein
    - StripWidth ist die Breite des Bereichs
    - Interval (wie oft wiederholt wird, habe ich auf 1000 damit es nur einmal gezeigt wird)
    - IntervalOffset (Startpunkt auf der Y Achse)

    Hoffe nun ist es auch besser Verständlich :thumbsup:
    In Arbeit...

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

    @vico255 Das ist gut.
    Wenn Du noch kurz erklären könntest, was sich die Zahlen da auf Dein Problem abbilden, wäre das richtig gut. :thumbup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!