如何将图表类型设置为饼图

当我这样做而没有把图表类型工作正常,但当我把它设置为馅饼时它的工作不正确。 它将所有系列名称作为Point 1,馅饼只有1个蓝色部分(一个圆圈),它只显示第一个点(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++; } 

您正在添加多个Series ,每个Series都有一个Point 。 因此,图表控件仅显示第一个Series 。 我相信你想要做的是为一个Series添加多个点。

我不确定我是否理解你HtmlNode做什么,但下面的代码演示了如何使用标签名称为Key和整数作为Value从Dictionary构建一个简单的饼图。

  Dictionary tags = new Dictionary() { { "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; }