[matplotlib] 29. ドーナツ状円グラフ

matplotlib

コード

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

解説

はじめに

ax.pie()は円グラフを作成するメソッドだが、 円ではなくドーナツ状グラフもpie()メソッドで作成できる。 ここでは、2層構造をもつデータを、内側&外側のドーナツ状グラフで表示した例を説明する。 ドーナツ状のグラフを作成するには、wedgepropsの項目でwidthを設定すればいい。

モジュールのインポート

データの生成

(4, 2)の形状のてきとうなデータを生成。

色の設定

tab20bは、

color example code: colormaps_reference.py — Matplotlib 2.0.2 documentation

のQualitative colormapsにあり、同系色の色が4個ずつ連なったカラーマップとなっている。そのうち、外側のドーナツの色を0から4こ飛ばしで選択し、内側のドーナツの色を1,2個目、5, 6個目, 9, 10個目, 13,14個目と選択した。

ドーナツグラフの表示

vals.sum(axis=1)でnp.array全体ではなく、array内のarrayの合計を求めることができるので、4個のデータが得られる。
vals.flatten()は、np.arrayを1次元に展開するので、8個のデータが得られる。

colorsは、各要素に設定した各色が表示されることとなる。

sizeを0.25とし、width=sizeとすることでドーナツグラフとしている。

外側のグラフの半径を1とし、内側のグラフの半径を1-sizeとすることで、2層構造をうまく配置している。

参考

https://matplotlib.org/gallery/pie_and_polar_charts/nested_pie.html
https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.pie.html

コメント