[matplotlib] 30. みやすい円グラフ

matplotlib

はじめに

matplotlibを使用した円グラフ(パイチャート)は、データの比率を視覚的に表現するのに適していますが、そのままでは見づらい場合があります。この記事では、円グラフを見やすくするためのテクニックを紹介します。

コード

解説

モジュールのインポート

データの生成

recipeを上記のように記述し、splitを各項目に適用することで、dataとlabelを分離しています。 splitは文字列を区切る関数で、区切り文字を指定しない場合は空白で区切られます。そのため、x.split()[0]で先頭の数字を、x.split()[-1]で末尾の材料名をそれぞれ取得できます。

なお、このデータはサボテン用土のオリジナル配合データです。

色の設定

Set2は、

color example code: colormaps_reference.py — Matplotlib 2.0.2 documentation

のQualitative colormapsにあり、0から5番目までの色を選択しました。

円グラフの表示

autopct=lambda p:'{:.0f}%’.format(p) if p>=2 else ” を使用すると、比率が2%未満のデータのパーセンテージ表示を非表示にできます。pctdistanceパラメータは%表示の位置を設定し、0.75と指定すると中心から円周の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ファイル)

まとめ

円グラフの可読性を高めるためには、以下のポイントを意識しましょう:

  • 適切な凡例の配置
  • パーセンテージの明示
  • 重要なセグメントの強調
  • 見分けやすい色の使用
  • 視覚効果(影など)の適度な活用
  • グラフの開始角度の調整

これらのテクニックを活用することで、データを明確に伝える効果的な円グラフを作成できます。

参考

A pie and a donut with labels — Matplotlib 3.10.5 documentation
matplotlibでいい感じの円グラフを書く - Qiita
要旨 matplotlib 円グラフを綺麗に書くための自分なりの方法です。 色々調整が必要な以下のようなデータを円グラフで書くと都度調整するようなことになって面倒ですよね。 ラベルが長かったり、短かったり。 データが10個以上あったり、1個...

コメント