ここまで、折れ線グラフ、棒グラフを表示してみました。
この2つはデータ系列を構成する各項目の大きさを表示するものです。
これらとは異なる表現方法に全体に対する項目が占める割合を表現するグラフがあります。
円グラフ(SeriesChartType.Pie)
よく見かける円グラフです。
今回のメインのサンプルコードです。
private void Form1_Load(object sender, EventArgs e)
{
// フォームをロードするときの処理
chart1.Series.Clear(); // ← 最初からSeriesが1つあるのでクリアします
chart1.ChartAreas.Clear();
// ChartにChartAreaを追加します
string chart_area1 = "Area1";
chart1.ChartAreas.Add(new ChartArea(chart_area1));
// ChartにSeriesを追加します
string legend1 = "Graph1";
chart1.Series.Add(legend1);
// グラフの種別を指定
chart1.Series[legend1].ChartType = SeriesChartType.Pie; // 円グラフを指定してみます
double[] values = new double[5] { 1.0, 0.8, 1.8, 0.2, 1.2 };
// 各項目の値を加算して合計(全体の大きさ)を算出します
double total = 0.0;
foreach(double d in values)
{
total += d;
}
// データをシリーズにセットします
for (int i = 0; i < values.Length; i++)
{
double rate = (values[i] / total) * 100.0; // <-- ここで割合を算出します
DataPoint dp = new DataPoint(rate, rate);
chart1.Series[legend1].Points.Add(dp);
}
}
実行してみると、このような表示になります。

ドーナツグラフ(SeriesChartType.Doughnut)
上記のサンプルコードからであれば、
chart1.Series[legend1].ChartType = SeriesChartType.Pie; // 円グラフを指定してみます
の行を
chart1.Series[legend1].ChartType = SeriesChartType.Doughnut; // ドーナツグラフを指定してみます
とします。
このようなグラフになります。

じょうごグラフ(SeriesChartType.Funnel)
ChartTypeプロパティにセットする値を
chart1.Series[legend1].ChartType = SeriesChartType.Funnel; // じょうごグラフを指定してみます
とすると、じょうごグラフになります。
実行すると下図のようなグラフが表示されます。

ピラミッドグラフ(SeriesChartType.Pyramid)
ChartTypeプロパティにセットする値を
chart1.Series[legend1].ChartType = SeriesChartType.Pyramid; // ピラミッドグラフを指定してみます
とします。
このようなグラフになります。


