matplotlibで視認性の高い円グラフを作成する方法
コード
![](https://sabopy.com/wp/wp-content/uploads/2019/10/sabo_soil_pie-1.jpg)
解説
はじめに
ax.pie()で円グラフが作成できるが、デフォルト設定の円グラフはなんとなく分かりにくい。 ここでは、ラベルを凡例で表示した見やすい円グラフの例を説明する。
モジュールのインポート
データの生成
recipeを以上のように記述し、splitを各項目にかけることで、dataとlabelを分けている。
splitは、文字列を区切る関数で、区切り文字を指定しない場合、空白で区切られる。そのため、x.split()[0]で最初の数字が取り出せて、x.split()[-1]で最後の材料名が取り出せる。
なお、データはサボテン用土のオリジナル配合データである。
色の設定
Set2は、
https://matplotlib.org/examples/color/colormaps_reference.html
のQualitative colormapsにあり、0から5番目までの色を選択した。
円グラフの表示
autopct=lambda p:'{:.0f}%’.format(p) if p>=2 else ”で比率が2%よりも小さいデータの比率を非表示にしている。pctdistanceは%表示の表示値の設定で、.75とすることで、中心から0.75の位置に%が表示される。(円の外周の位置が1)
colors=colorsは、各要素に設定した各色が表示される。
textprops=dict(color=”k”)で%表示の文字の色を変えられる。円グラフの色によって見やすい色に変えればよいのではないかと思う。
plt.setp(autotexts, size=12)で、%表示の文字サイズを変更することができる。
凡例の表示
bbox_to_anchor=(1, 0, .5, 1))で、(1,0)を左下とする位置に、幅.5高さ1の凡例が作成される。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)参考
https://matplotlib.org/gallery/pie_and_polar_charts/pie_and_donut_labels.html#sphx-glr-gallery-pie-and-polar-charts-pie-and-donut-labels-py
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9bWF0cGxvdGxpYiVFMyU4MSVBNyVFMyU4MSU4NCVFMyU4MSU4NCVFNiU4NCU5RiVFMyU4MSU5OCVFMyU4MSVBRSVFNSU4NiU4NiVFMyU4MiVCMCVFMyU4MyVBOSVFMyU4MyU5NSVFMyU4MiU5MiVFNiU5QiVCOCVFMyU4MSU4RiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9NGQ2N2NiNzgyYjljNWRkZjQ0OGY3OTg4NWViZGZkMzE&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBzYWZhcmkwMjkmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTZmYjJjOTU3YmE0YWUzMzM3NjRmNjg2OWQwMGMyMDdh&blend-x=142&blend-y=486&blend-mode=normal&s=7d10fba3f2e6256d272214e2e9e144d1)
matplotlibでいい感じの円グラフを書く - Qiita
#要旨matplotlib 円グラフを綺麗に書くための自分なりの方法です。色々調整が必要な以下のようなデータを円グラフで書くと都度調整するようなことになって面倒ですよね。ラベルが長かったり、短…
コメント