Search code examples
vb.netchartspie-chart

Creating a basic pie chart in VB.NET


I am having issues trying to resolve why my chart control isn't working correctly. I have never worked with Pie Charts before, and I can't get a basic pie chart to populate. Ultimately, I am trying to create an exploded pie chart with percentages (if possible)

My code so far is:

chrtRegisterAvailability.Series.Clear()
chrtRegisterAvailability.Series.Add("Series1")
chrtRegisterAvailability.Series("Series1").Points.AddXY("Online", 60)
chrtRegisterAvailability.Series("Series1").Points.AddXY("Offline", 40)
chrtRegisterAvailability.Series("Series1").ChartType = SeriesChartType.Pie
chrtRegisterAvailability.Series("Series1")("PieLabelStyle") = "Outside"
chrtRegisterAvailability.ChartAreas("ChartArea1").Area3DStyle.Enable3D = True
chrtRegisterAvailability.Series.Add("Series1")

No doubt I am missing something as I've tried finding various examples on the net, but with no luck. Any help appreciated thanks.


Solution

  • Try this code. It might be that not clearing the chart is the issue.

        With Me.chrtRegisterAvailability
            .Legends.Clear()
            .Series.Clear()
            .ChartAreas.Clear()
        End With
    
        Dim areas1 As ChartArea = Me.chrtRegisterAvailability.ChartAreas.Add("Areas1")
    
        With areas1
        End With
    
        Dim series1 As Series = Me.chrtRegisterAvailability.Series.Add("Series1")
    
        With series1
            .ChartArea = areas1.Name
            .ChartType = SeriesChartType.Pie
            .Points.AddXY("Online", 60)
            .Points.AddXY("Offline", 40)
        End With
    
        Dim legends1 As Legend = Me.chrtRegisterAvailability.Legends.Add("Legends1")