【毎日Python】Pythonでデータフレームから円グラフを作成する方法|DataFrame.plot.pie

plot_pie
毎日Python/こつこつPython

Pythonで円グラフを作成する方法です。
使用するのはPythonのpandasライブラリのplot.pieメソッドです。
Pythonにはmatplitlibというライブラリがありますが、pandasのplotメソッドでも簡単にグラフ作成を行うことができます。

import pandas as pd
import numpy as np
import random

このようなデータフレームを使用します。

data = np.random.randint(10, 100,(5, 2))
idx =  ['Python', 'C++', 'SQL', 'Java', 'JavaScript']
col= ['2021', '2020']
df = pd.DataFrame(data=data, index=idx, columns=col)
df

実行結果:
df

まず、2021年のデータで円グラフを作成してみましょう。
dfに角括弧でカラムを指定して列を抽出します。
引数には、何も指定せずに実行します。
2021年の円グラフを作成することができました。

df['2021'].plot.pie()

実行結果:
graph01

このように、1つの列を抽出して円グラフを作成する場合には、引数yでカラムを指定することも可能です。
実行します。
同じく2021年の円グラフを作成することができました。
なお、引数yで作成した場合には、凡例が付きます。

df.plot.pie(y='2021')

実行結果:
graph02

次に、すべての列の円グラフを作成してみましょう。
引数subplotsにTrueを指定します。
また、グラフを見やすくするために、引数figsizeでサイズを大きめに設定します。
実行します。
2020年と2021年の円グラフを作成することができました。
このように、すべてのカラムのデータをグラフにしたい場合には、引数subplotsをTrueに指定します。

df.plot.pie(subplots=True, figsize=(7, 7))

実行結果:
graph03

次に、グラフ全体の色の種類も変更してみましょう。
引数colormapに色の種類を指定して実行します。
色を変更することができました。

df.plot.pie(y='2021',figsize=(7, 7),cmap='plasma')

実行結果:
graph04

最後に、それぞれのパーセンテージを表示させてみましょう。
引数autopctに、文字列のフォーマットで整数部分のパーセントのみ表示するように指定します。
それぞれパーセンテージを表示させることができました。

df.plot.pie(y='2021',figsize=(10, 10),autopct='%.f%%')

実行結果:
graph05

関連メソッド

【毎日Python】Pythonでデータフレームからグラフを作成|DataFrame.plot

【毎日Python】Pythonでデータフレームから棒グラフを作成|DataFrame.plot.bar

【毎日Python】Pythonで棒グラフを作成する方法|matplotlib.pyplot.bar

【毎日Python】Pythonでデータフレームから横棒グラフを作成|DataFrame.plot.barh

【毎日Python】Pythonでシリーズからヒストグラムを作成する方法|Series.plot.hist

【毎日Python】Pythonで円グラフを作成する方法 | matplotlib.pyplot.pie