チャートタイプを入れずにそれを行うと正常に機能しますが、パイに設定すると正しく機能しません。すべてのシリーズ名をポイント1とすると、円は1つの青い部分(1つの円)のみであり、最初のポイント(値)のみが表示されます。
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
を追加し、それぞれに1つのPoint
があります。その結果、チャートコントロールは最初のSeries
のみを表示します。あなたがやりたいのは、1つのSeries
に複数のポイントを追加することだと思います。
HtmlNode
で何をしようとしているのかわかりませんが、以下のコードは、タグ名をキーとして使用し、整数を使用してDictionary
から簡単な円グラフを作成する方法を示しています。値として。
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;
}