はじめに
ScottPlotを使った円グラフの作り方をご紹介します。
散布図ばかり紹介していたので、「円グラフが作りたい!」という方の参考になればうれしいです。
- 実行時のGIF動画
- 全体コード
「ScottPlotのインストールはどうやるの?」というかた方は以下の記事をご覧ください。
(記事は散布図ですが、円グラフでもインストールの仕方は同じです)
実行時のGIF動画
以下が作成した円グラフのGIF動画です。
円グラフの拡大・縮小はできないようです (マウスカーソルがスクロールのアイコンに変わる所)
上下左右への移動は左ドラッグで可能です。

全体コード
円グラフの作成コードは以下です。散布図と同様に簡単で短いコードで作成することができます。
//
// デザイナでScottPlotの描画コントロール formsPlot1を
// 設定しています。
//
public Form4()
{
InitializeComponent();
// サンプル用のデータです。
double[] datas = { 5, 20, 50, 10, 15 };
// サンプル用のラベル名です。対応するデータと同じ順番で並べてください。
string[] labels = { "LabelA", "LabelB", "LabelC", "LabelD", "LabelE"};
//
// コントロールに円グラフ(Pie)としてセットします。
// showPercentages: データの割合を表示します。
// showLabels: ラベルを表示します。
//
formsPlot1.plt.PlotPie(datas, labels, showPercentages: true, showLabels:true );
// グラフの後ろの目盛り線を非表示にします
formsPlot1.plt.Grid(false);
// コントロール(表示枠)の枠線を非表示にします。
formsPlot1.plt.Frame(true);
// X,Y軸の軸目盛りを非表示にします。
formsPlot1.plt.Ticks(false, false);
// 右下の凡例を表示します。
formsPlot1.plt.Legend();
// ScottPlotのコントロールにグラフを描画(表示)します。
formsPlot1.Render();
}
}
コードのポイント
データ・ラベル名の設定、円グラフの作成
表示する数値データ・ラベル名を配列で作成して、
円グラフ用のオブジェクト(PlotPie)に設定することで、円グラフが作成できます。
// サンプル用のデータです。
double[] datas = { 5, 20, 50, 10, 15 };
// サンプル用のラベル名です。対応するデータと同じ順番で並べてください。
string[] labels = { "LabelA", "LabelB", "LabelC", "LabelD", "LabelE"};
//
// コントロールに円グラフ(Pie)としてセットします。
// showPercentages: データの割合を表示します。
// showLabels: ラベルを表示します。
//
formsPlot1.plt.PlotPie(datas, labels, showPercentages: true, showLabels:true );
枠線・軸目盛り線の設定
描画コントロールにデフォルトで表示される、枠線・軸目盛り線への設定です。
記載しなくても円グラフの表示自体に影響はありません。
非表示設定にしておいたほうが、円グラフがよりそれっぽく表示できます。
// グラフの後ろの目盛り線を非表示にします
formsPlot1.plt.Grid(false);
// コントロール(表示枠)の枠線を非表示にします。
formsPlot1.plt.Frame(true);
// X,Y軸の軸目盛りを非表示にします。
formsPlot1.plt.Ticks(false, false);
最後に
今回も基本的な内容でしたが、参考になればうれしいです。
伝わるグラフを作る
この記事の読者の方々は、少しでも「分かりやすく」「見やすく」といったことも考えてアプリケーションを作られている方が多いと思います。それだけでも十分に素晴らしいですが、「そもそもどんなグラフがユーザーにとって分かりやすいか?」といった、デザインやUXの知識・視点も結構おもしろいです。
以下の本など、比較的手軽な値段で読める書籍がいくつかあるので、ぜひ覗いてみてください。
応援・要望お待ちしてます
ブログを見ていて「この辺を詳しく知りたい」「このライブラリの使い方を知りたい」「こんなことで困ってる」...etc があれば、コメント・問い合わせ・Twitterで教えてください。質問・ご要望に合わせて解説記事を作ります。
ブログを気に入っていただけたり、「応援してもいいよ」という方がいたら、ブログやSNSでの紹介をお願いします。 あたたかい応援は、中の人の更新の大きな励みになります。