Charts: Bei mehr als 9 Elementen wird nur jede zweite Beschriftung angezeigt.

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

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Charts: Bei mehr als 9 Elementen wird nur jede zweite Beschriftung angezeigt.

    Hallo Leute,

    wie am Bild zu sehen, möchte ich ein Chart mit 12 Elementen befüllen (in meinem Fall 12 Monate).
    Leider wird unterhalb der Balken nur jedes zweite Monat angezeigt (als Text). Unabhängig von der Pixelbreite des Charts.
    Wenn ich nur 9 Monate aufliste, dann wird jedes Monat als Text angezeigt.

    Wie bekomme ich nun alle 12 Monate unten als Text angezeigt?

    VB.NET-Quellcode

    1. Public Sub GrafischerJahresVergleich()
    2. Me.Cursor = Cursors.WaitCursor
    3. With Chart1
    4. .Series.Clear()
    5. .ChartAreas("ChartArea1").AxisX.MajorGrid.LineColor = Color.WhiteSmoke
    6. .ChartAreas("ChartArea1").AxisY.MajorGrid.LineColor = Color.WhiteSmoke
    7. Dim JahrString As String = ""
    8. For JahresZaehler As Integer = 0 To 4
    9. JahrString = (Year(Now) - JahresZaehler).ToString
    10. .Series.Add(JahrString)
    11. .Series(JahrString).IsValueShownAsLabel = True
    12. .Series(JahrString).LabelToolTip = "Umsätze " + JahrString
    13. .Series(JahrString).SmartLabelStyle.Enabled = False
    14. .Series(JahrString).LabelAngle = -90
    15. Select Case JahresZaehler
    16. Case 0
    17. .Series(JahrString).LabelForeColor = Color.LimeGreen
    18. .Series(JahrString).Color = Color.LimeGreen
    19. Case 1
    20. .Series(JahrString).LabelForeColor = Color.FromArgb(64, 64, 64)
    21. .Series(JahrString).Color = Color.FromArgb(64, 64, 64)
    22. Case 2
    23. .Series(JahrString).LabelForeColor = Color.Tomato
    24. .Series(JahrString).Color = Color.Tomato
    25. Case 3
    26. .Series(JahrString).LabelForeColor = Color.Goldenrod
    27. .Series(JahrString).Color = Color.Goldenrod
    28. Case 4
    29. .Series(JahrString).LabelForeColor = Color.Gray
    30. .Series(JahrString).Color = Color.Gray
    31. End Select
    32. For i As Integer = 1 To 12
    33. .Series(JahrString).Points.AddXY(MonthName(i, True), CLng(1020 * i * (JahresZaehler + 1)))
    34. Next i
    35. Next JahresZaehler
    36. End With
    37. Me.Cursor = Cursors.Default
    38. End Sub
    Bilder
    • 17092018163505.jpg

      155,53 kB, 1.371×483, 35 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    @dive26 Dies macht bei mir für jeden Monat einen Strich - alle 30 Tage:

    VB.NET-Quellcode

    1. Chart1.ChartAreas(0).AxisX.Interval = 30
    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!
    Vielen Dank!

    VB.NET-Quellcode

    1. .ChartAreas("ChartArea1").AxisX.Interval = 1
    war die Lösung ;)
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at