Pythonを使った円グラフの作成 その2Matplotlib入門講座 06_02

Python
この記事は約6分で読めます。

【基礎】Pythonを使った円グラフの作成方法

前回のブログはこちら

matplotlibとSeabornの独学の為に
今回もkino-code.comさんのYouTube動画にお世話になります。

前回の講義で作成した円グラフは時計でいうと3時スタートの
反時計回りのグラフでした。

value = [10,15,25,35]                
label = ['tomato', 'carrot', 'potato', 'onion']

plt.pie(x=value, labels=label, autopct='%1.1f%%')
plt.show()


このグラフを12時スタートにするのに
plt.pieの引数にstartangle=90を加えます。
更に反時計回りになっているグラフの表示を時計回りに変更する引数が
counterclock=Falseです。この二つを記述して実行します。

value = [10,15,25,35]                
label = ['tomato', 'carrot', 'potato', 'onion']

plt.pie(x=value, labels=label, autopct="%1.1f%%", startangle=90,counterclock=False)
plt.show()


次は円グラフの色を変更します。
カラーリストを作成して引数に渡します。

colorlist = ["pink", "yellow", "skyblue", "orange"]

plt.pie(x=value, labels=label, autopct="%1.1f%%", startangle=90, counterclock=False, colors=colorlist)
plt.show()

次は円グラフの一部を切り取って表示させます。
今回は、carrotの部分をを切り出します。
plt.pie()の中に、explode=[0, 0.3, 0, 0]
与えた4つの要素の中心からの位置を数値で設定します。

円グラフの中心が0で、円周が1です。
つまり、今回は2つ目の要素を切り出したいので、
角括弧の中の2つ目の数値を0.3とします。

plt.pie(x=value, labels=label, autopct="%1.1f%%", startangle=90, colors=colorlist, counterclock=False, explode=[0, 0.3, 0, 0])
plt.show()


次はグラフに影をつけます。引数にshadow=Trueを追加すると影がつきます。

plt.pie(x=value, labels=label, autopct="%1.1f%%", startangle=90, colors=colorlist, counterclock=False, explode=[0, 0.3, 0, 0],shadow=True)
plt.show()

ドーナツグラフの作成

ドーナツグラフの作成にかんしては
matplotlibにドーナツ型グラフを描くメソッドがあるわけではなく、
先ほどの円グラフの真ん中に白い円グラフを描いて
ドーナツ型にするそうです。
前回同様plt.pie()と記述。その引数の中に
[100]  ←100%の円を描く記述
colors='white'  ←円グラフの色
radius=0.5  ←円グラフの大きさ
この円グラフを先ほど描いたグラフの下に記述します。

plt.pie(x=value, labels=label, autopct="%1.1f%%", startangle=90, counterclock=False)
plt.pie([100], colors='white', radius=0.5)    
plt.show()

パーセンテージの表示と白い円と少し重なっているので、
位置をずらします。
pctdistanceでパーセンテージを移動します。
円の中心が0、円周が1なので、今回は0.75で設定します。

plt.pie(x=value, labels=label, autopct="%1.1f%%", startangle=90, counterclock=False, pctdistance=0.75)
plt.pie([100], colors='white', radius=0.5)
plt.show()

今回もkinocodeさんの動画で勉強させていただきました。
ありがとうございました!

コメント

タイトルとURLをコピーしました