2013-01-06 8 views
5

Quando lo faccio senza mettere il tipo di grafico funziona bene ma quando lo imposto non funziona correttamente. Mette tutto il nome della serie come Punto 1, la torta è solo un pezzo blu (un cerchio) e mostra solo il primo punto (Valore).Come impostare il tipo di grafico su torta

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

risposta

13

si aggiungono più Series, ciascuna con un Point. Di conseguenza, il controllo della rappresentazione grafica visualizza solo il primo Series. Credo che quello che vuoi fare sia aggiungere più punti a un singolo Series.

Non sono sicuro di aver capito cosa si sta cercando di fare con lo HtmlNode ma il codice seguente mostra come costruire un semplice grafico a torta da un Dictionary utilizzando un nome di tag come Chiave e un intero come Valore.

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