从DataGridView绘制饼图,列名为系列

时间:2013-03-18 21:01:24

标签: c# datagridview charts legend pie-chart

我在C#代码中有一个datagridview“regionVolumeTable”和一个图表对象“pieChart”,在datagridview对象中有一行数据,这样的布局

DATE   |  NY   |   MA  | CA   | FL  
3/1/13 |  100  |  120  | 150  | 200

我正在努力使用行[0],列[1],[2],[3],[4],它们是(“NY”,“MA”,“CA”,“FL”)饼图中的图例 和行[1],列[1],[2],[3],[4],它们是(100,120,150,200)作为绘制饼图的值。

我知道我需要从行[1]中总结列[1 ... 4]来得到总和,然后将每个扇区除以得到绘制的程度。

到目前为止,我有:

for (int colindex = 1; colindex < 5; colindex++)
{
   pieChart.Series.Add((string)regionVolumeTable.Columns[colindex].Name);

}

而且我不知道如何继续完成以获取分配的值以绘制饼图。

1 个答案:

答案 0 :(得分:0)

对于Pie图表,您只能拥有一个Series。为每个数据值添加一个DataPoints

Series s = pieChart.Series.Add("pie");
s.ChartType = SeriesChartType.Pie;
s.IsValueShownAsLabel = true;
for (int colindex = 1; colindex < regionVolumeTable.Columns.Count; colindex++)
{
    s.Points.AddXY(regionVolumeTable.Columns[colindex].HeaderText,
                   regionVolumeTable[colindex, 0].Value);
}

enter image description here

请注意看起来,好像图表包含多个Series;但是在Pie图表中,每个 DataPoint 都会显示在Legend中!