How to set chart type to pie

41,528

You are adding multiple Series, each with one Point. As a result the charting control only displays the first Series. I believe what you are wanting to do is adding multiple points to a single Series.

I'm not sure I understand what you are trying to do with the HtmlNode but the code below demonstrate how to build a simple pie chart from a Dictionary using a tag name as Key and an integer as Value.

        Dictionary<string, int> tags = new Dictionary<string,int>() { 
            { "test", 10 },
            { "my", 3 },
            { "code", 8 }
        };

        chart1.Series[0].Points.Clear();
        chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie;
        foreach (string tagname in tags.Keys)
        {
            chart1.Series[0].Points.AddXY(tagname, tags[tagname]);
            //chart1.Series[0].IsValueShownAsLabel = true;
        }
Share:
41,528
a1204773
Author by

a1204773

Updated on July 29, 2022

Comments

  • a1204773
    a1204773 almost 2 years

    When I do it without putting chart type is working fine but when I set it to pie its not working correct. It put all series name as Point 1 the pie is only 1 blue piece (one circle) and it show only first point (Value).

    foreach (var tag in tags)
    {
        HtmlNode tagname = tag.SelectSingleNode("a");
        HtmlNode tagcount = tag.SelectSingleNode("span/span");
        chart1.Series.Add(tagname.InnerText);
        chart1.Series[x].Points.AddY(int.Parse(tagcount.InnerText));
        chart1.Series[x].IsValueShownAsLabel = true;
        chart1.Series[x].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Pie;
        x++;
    }