2013-01-06 9 views
5

Wenn ich es tue, ohne den Diagrammtyp zu setzen, funktioniert gut, aber, wenn ich es zum Kuchen einstelle, funktioniert es nicht richtig. Es setzt alle Seriennamen als Punkt 1, der Kuchen ist nur 1 blaues Stück (ein Kreis) und zeigt nur den ersten Punkt (Wert).Wie man den Diagrammtyp zu Kuchen einstellt

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++; 
} 

Antwort

13

Sie das Hinzufügen sind mehrere Series, die jeweils mit einem Point. Daher zeigt das Diagrammsteuerelement nur die erste Series an. Ich glaube, was Sie wollen, ist das Hinzufügen mehrerer Punkte zu einem einzigen Series.

Ich bin mir nicht sicher, ob ich verstehe, was Sie mit dem HtmlNode zu tun versuchen, aber der Code unten zeigen, wie ein einfaches Tortendiagramm von einem Dictionary mit einem Tag-Namen als Schlüssel und eine ganze Zahl als Wert zu bauen.

 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; 
     }