Chart Control, Linie soll gaaaanz links beginnen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Skino.

    Chart Control, Linie soll gaaaanz links beginnen

    Ich lese Daten aus einer Listbox in ein Chart Control ein. Als zweiten Wert nehme ich -im Moment noch- eine Zufallszahl, um eine Anzeige zu erhalten.

    Quellcode

    1. Dim i As Integer
    2. For i = -1 To Range
    3. Dim value As Integer = CInt(Int((500 * Rnd()) + 1000) * 11)
    4. Form1.Chart1.Series("PATH").Points.AddXY((ListBox1.Items(i)), value)
    5. Next i


    Leider beginnt die Linie anscheinend nicht am 1. Wert, sondern erst am zweiten:



    Ist da die Formatierung falsch oder ein Fehler im Einlese - Code? :/
    Man(n) kann auch ohne Hunde leben, aber es lohnt nicht (Heinz Rühmann)

    Skino schrieb:

    Ich lese Daten
    Mach Dir eine Tabelle mit x- und y-Werten, die wohl bestimt sind, z.B. (0,0), (1,1), ..., (10,10) und bearbeite diese Darstellung. Wenn es klappt, nimm Deine Werte.
    Und

    Skino schrieb:

    VB.NET-Quellcode

    1. Form1.Chart1. ...

    Gugst Du hier.
    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!
    Danke für deine Antwort. :)
    Das hatte ich bereits probiert, mit dem selben Ergebnis. Wenn ich mir jetzt mal Bilder von anderen VB NET Charts ansehe scheint das wohl der Normalfall zu sein:





    Also vermutlich kein Fehler meinerseits. :saint: Die Frage ist jetzt, ob das umgangen werden kann. Die Werte scheinen zentriert dargestellt zu sein, ich hätte gern linksbündig, finde aber in den Optionen keine Möglichkeit dafür (was nix heißen muss).
    Man(n) kann auch ohne Hunde leben, aber es lohnt nicht (Heinz Rühmann)

    Skino schrieb:

    ich hätte gern linksbündig
    Kannst Du dazu mal ne Skizze machen, wie es 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!
    Klar doch. Also im Vergleich zu den Bildern oben als so





    Die Werte sollen direkt am linken Rand beginnen.
    Man(n) kann auch ohne Hunde leben, aber es lohnt nicht (Heinz Rühmann)
    @Skino Probier mal dies zur Darstellung (natürlich mit Deinen Werten):

    VB.NET-Quellcode

    1. Me.Chart1.ChartAreas(0).AxisX.Maximum = 100
    2. Me.Chart1.ChartAreas(0).AxisX.Minimum = 0
    3. Me.Chart1.ChartAreas(0).AxisX.Interval = 33.3
    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!

    Quellcode

    1. ​Chart1.ChartAreas(0).AxisX2.Minimum = 1
    ist der Trick. Vielen Dank. Klappt bestens. :thumbup:

    Noch ein "Bonusfrage" ;)

    Ich möchte die X-Achsenbeschriftung oben und unten haben. Oben habe ich über die sekundäre X Achse geregelt. Wie füge ich jetzt die primäre X-Achse ein um auch unten zu beschriften mit den selben Werten? ?(
    Man(n) kann auch ohne Hunde leben, aber es lohnt nicht (Heinz Rühmann)

    Skino schrieb:

    mit den selben Werten?
    oben und unten?
    Müsste ich auch suchen.
    Frag mal Frau Google nach vb.net chart x-achsenbeschriftung oben.
    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!
    Da habe ich den Tip mit der Sekundär Achse her ;)
    Ich kann auch eine 2. Datenreihe erzeugen für die primäre X-Achse. Weiss aber dann immer noch nicht, wie primäre und sekundäre X-Achse gleichzeitig anzeigen kann.
    Man(n) kann auch ohne Hunde leben, aber es lohnt nicht (Heinz Rühmann)

    Skino schrieb:

    sekundäre X-Achse
    gibt es nicht, nur eine sekundäre y-Achse.
    Da wäere die primäre Achse links und die sekundäre Achse rechts.
    Es ist ja gerade der Sinn eines solchen Diagramms, dass die x-Achse einheitlich für alle Kurven ist. Wie bei Excel.
    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!
    Die sekundäre X-Achse nutze ich ja, weil diese die Werte immer oben hinschreibt. Steht auch in deinem Link

    ​Achse Position

    Primäre X-Achse Bottom

    Primäre Y-Achse Links

    Sekundäre X-Achse Top

    Sekundäre Y-Achse Right


    Oder meinst du, das nur eine genutzt werden kann?
    Man(n) kann auch ohne Hunde leben, aber es lohnt nicht (Heinz Rühmann)

    Skino schrieb:

    Oder meinst du
    Ich sehe, dass ich erst mal Hausaufgaben machen muss. ;)
    -----
    Im Designer:
    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!

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

    Man ist auch manchmal blind; ich muss natürlich eine 2. Serie haben, dann kann ich das auch zuweisen *kopfschüttel

    Vielen Dank :)
    Man(n) kann auch ohne Hunde leben, aber es lohnt nicht (Heinz Rühmann)