Liquidsのロゴ Liquids

0

円グラフ【matplotlib】

matplotlib

円グラフを描画するにはmatplotlib.pyplot.pie()を使用します。
各要素の割合に応じた円グラフの領域が割り当てられます。

import matplotlib.pyplot as plt
import numpy as np

x = np.array([3, 5, 1, 6])
plt.pie(x)
plt.show()

また、要素の合計が1.0に満たない場合は空白の領域が発生するため注意しましょう。

x = np.array([0.3, 0.2, 0.4])
plt.pie(x)
plt.show()

labels引数にリストを与えることで、対応する要素のデータにラベルがつきます。

x = np.array([3, 5, 1, 6])
labels = ['Australia', 'America', 'Singapore', 'Japan']
plt.pie(x, labels=labels)
plt.show()

デフォルトでは円グラフの外にラベルがつきます。
labeldistance引数を使用することで、円グラフの中心からの距離を調整することができます。
円の中心から円周までの距離が1で、デフォルトは1.1です。

x = np.array([3, 5, 1, 6])
labels = ['Australia', 'America', 'Singapore', 'Japan']
plt.pie(x, labels=labels, labeldistance=0.4)
plt.show()

ラベルをデフォルトで水平に表示されますが、rotatelabelsTrueにすることで、円グラフの角度に応じて回転させることができます。

x = np.array([3, 5, 1, 6])
labels = ['Australia', 'America', 'Singapore', 'Japan']
plt.pie(x, labels=labels, rotatelabels=True)
plt.show()

円グラフの色を変更するにはcolors引数を使用します。
リストの要素に対応したデータの色が変わります。

x = np.array([3, 5, 1, 6])
colors = ['skyblue', 'lightgreen', 'pink', 'yellow']
plt.pie(x, colors=colors)
plt.show()


詳しくはこちらのwikiを参照

円の半径はradius引数で調整できます。

x = np.array([3, 5, 1, 6])
plt.pie(x, radius=0.3)
plt.show()

explode引数を用いて、ある要素を円グラフから切り離すことができます。
与える値は、それぞれの要素をどれだけ中心から離すかを表すリストです。

x = np.array([3, 5, 1, 6])
plt.pie(x, explode=[0.1, 0, 0.1, 0])
plt.show()

autopct引数を使用して各要素が占める割合を自動的に計算してくれます。

x = np.array([3, 5, 1, 6])
plt.pie(x, autopct='%1.1f%%')
plt.show()


autopctに与える文字列の形式はこちらが参考になります。 

また、%表示のラベルの位置を調整するにはpctdistanceを使用します。0.0が円の中心、1.0が円周上です。デフォルトは0.6です。

x = np.array([3, 5, 1, 6])
plt.pie(x, autopct='%1.1f%%', pctdistance=1.3)
plt.show()

円グラフを描き始める角度はstartangle引数で設定できます。

x = np.array([3, 5, 1, 6])
plt.pie(x, startangle=60)
plt.show()



60°

データを時計回り・反時計回りで描画していくかはcounterclock引数で指定できます。
Trueであれば反時計回り、Falseであれば時計回りに描画されます。

ラベルのテキストはtextpropsを使用して装飾することができる。

x = np.array([3, 5, 1, 6])
labels = ['Australia', 'America', 'Singapore', 'Japan']
text = {
  'color' : 'purple',
  'fontsize' : 'x-large',
  'fontstyle' : 'italic'
}
plt.pie(x, labels=labels, textprops=text)
plt.show()


装飾可能な要素はこちらのドキュメントをご覧ください。

Liquidsのロゴ Liquids

Liquidsは誰でも投稿・編集ができる技術Wikiコミュニティ📝です。

あなたもLiquidsで技術Wikiを
書いてみませんか?