Is it possible to rotate a "Chart" control on vb.net by 90 degrees?

3

I have a small graph in a form and I would like to know if it is possible to rotate it 90 degrees, if so, could you show me how you can do it?

With this little code I can draw the graph.

Dim s As New Series

    s.Name = "Ganancia"

    'Change to a line graph.
    s.ChartType = SeriesChartType.Line
    s.BorderWidth = 4

    Threading.Thread.Sleep(1000)
    s.Points.AddXY("1993", 27)
    s.Points.AddXY("1994", 15)
    s.Points.AddXY("1995", 10)
    s.Points.AddXY("1996", 6)
    s.Points.AddXY("1997", 0)
    s.Points.AddXY("1998", 6)
    s.Points.AddXY("1999", 10)
    s.Points.AddXY("2000", 15)
    s.Points.AddXY("2001", 27)

    Chart1.Series.Add(s)

    With Chart1.ChartAreas(0)
        .AxisX.Title = "Año"
        .AxisX.TitleForeColor = Color.MidnightBlue
        .AxisX.LabelStyle.Font = New System.Drawing.Font("TimeBurner", 12.0F, System.Drawing.FontStyle.Bold)
        .AxisX.TitleFont = New System.Drawing.Font("TimeBurner", 22.0F, System.Drawing.FontStyle.Bold)
        .AxisX.MajorGrid.LineColor = Color.LightGreen
        .AxisX.MajorGrid.LineWidth = 1

        .AxisY.Title = "Ventas"
        .AxisY.TitleForeColor = Color.DarkGreen
        .AxisY.LabelStyle.Font = New System.Drawing.Font("TimeBurner", 12.0F, System.Drawing.FontStyle.Bold)
        .AxisY.TitleFont = New System.Drawing.Font("TimeBurner", 22.0F, System.Drawing.FontStyle.Bold)
        .AxisY.MajorGrid.LineColor = Color.LightBlue
        .AxisY.MajorGrid.LineWidth = 2



        .BackColor = Color.WhiteSmoke
        .BackSecondaryColor = Color.Honeydew
        .BackGradientStyle = GradientStyle.HorizontalCenter
        .BorderColor = Color.Black
        .BorderDashStyle = ChartDashStyle.Solid
        .BorderWidth = 2
        .ShadowOffset = 5
        .AxisX.LabelStyle.Angle = -90
        .AxisY.LabelStyle.Angle = -90
        s.MarkerStyle = DataVisualization.Charting.MarkerStyle.Circle
        s.MarkerSize = 7
        s.MarkerColor = Color.Red

        s.IsValueShownAsLabel = True
        s.Font = New System.Drawing.Font("TimeBurner", 10, FontStyle.Bold)
        s.LabelBackColor = Color.LightPink


    End With

    Chart1.Legends.Clear()

I appreciate the help.

    
asked by Layito_nk 01.10.2018 в 03:33
source

1 answer

5

One solution is the following.

First, enter the inverted data, and the years as integers instead of as Strings :

s.Points.AddXY(27, 1993)
s.Points.AddXY(15, 1994)
s.Points.AddXY(10, 1995)
s.Points.AddXY(6, 1996)
s.Points.AddXY(0, 1997)
s.Points.AddXY(6, 1998)
s.Points.AddXY(10, 1999)
s.Points.AddXY(15, 2000)
s.Points.AddXY(27, 2001)

Then, you also invest the axes:

.AxisX.Title = "Ventas"
.AxisX.TitleForeColor = Color.DarkGreen
.AxisX.LabelStyle.Font = New System.Drawing.Font("TimeBurner", 12.0F, System.Drawing.FontStyle.Bold)
.AxisX.TitleFont = New System.Drawing.Font("TimeBurner", 22.0F, System.Drawing.FontStyle.Bold)
.AxisX.MajorGrid.LineColor = Color.LightBlue
.AxisX.MajorGrid.LineWidth = 2

.AxisY.Title = "Año"
.AxisY.TitleForeColor = Color.MidnightBlue
.AxisY.LabelStyle.Font = New System.Drawing.Font("TimeBurner", 12.0F, System.Drawing.FontStyle.Bold)
.AxisY.TitleFont = New System.Drawing.Font("TimeBurner", 22.0F, System.Drawing.FontStyle.Bold)
.AxisY.MajorGrid.LineColor = Color.LightGreen
.AxisY.MajorGrid.LineWidth = 1

Finally, you must manually put the maximum, minimum and interval values on the Y axis:

AxisY.Maximum = 2001
.AxisY.Minimum = 1993
.AxisY.Interval = 1
.AxisY.IsReversed = True

.AxisY.IsReversed is for the sales labels to appear above instead of below.

I hope it serves you. Here is a capture of how it looks:

    
answered by 01.10.2018 / 18:28
source