円グラフは円形の統計図形で、数値の比率を示すためにスライスに分割されています。
円グラフでは、各スライスの弧の長さは、それが表す量に比例します。
円グラフは、世論調査の結果を表すのによく使われる方法です。
この記事では、円グラフをプロットする方法を学びます。
さらに、pythonで円グラフをカスタマイズする方法についても学びます。
さっそく始めましょう。
サンプルデータの作成
円グラフを作成する際に使用するサンプルデータを作成してみましょう。
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
|
このデータは、好きなスポーツに関する世論調査の代表的なものです。
How to plot Pie Chart?
円グラフを描画するために matplotlib を使います。
import matplotlib.pyplot as plt
|
基本的な円グラフを描くには、ラベルとそのラベルに関連する値が必要です。
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
fig1, ax1 = plt.subplots()
ax1.pie(sizes, labels = labels)
ax1.axis( 'equal' )
plt.show() |
上記のコードスニペットを実行すると、次のような出力が得られます。
import matplotlib.pyplot as plt
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
explode = ( 0 , 0.1 , 0 , 0 )
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode = explode, labels = labels)
plt.show() |
これは非常に基本的な円グラフであることに注意してください。
では、円グラフをカスタマイズしてもっと面白くする方法を見てみましょう。
この記事もチェック:Pythonのmatplotlibを使って滑らかな曲線グラフを描画する方法
Pythonで円グラフをカスタマイズする
matplotlib は、円グラフをプロットする際に多くのカスタマイズオプションを提供します。
これらを一つずつ見ていきましょう。
1. スライスをポップアウトさせる
爆発オプションを使って、円グラフの1つまたは複数のスライスをポップアウトさせることができます。
そのために、explosion の値を格納した配列を宣言しましょう。
explosion 配列は、各スライスをオフセットする半径の割合を指定します。
import matplotlib.pyplot as plt
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
explode = ( 0.4 , 0.2 , 0.2 , 0.2 )
fig1, ax1 = plt.subplots()
ax1.pie(sizes, explode = explode, labels = labels)
plt.show() |
結果は以下の通りです。
import matplotlib.pyplot as plt
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
fig1, ax1 = plt.subplots()
explode = ( 0 , 0.1 , 0 , 0 )
ax1.pie(sizes, explode = explode, labels = labels,
shadow = True , startangle = 90 )
plt.show() |
いろいろな爆発値を試してみましょう。
import matplotlib.pyplot as plt
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
fig1, ax1 = plt.subplots()
explode = ( 0 , 0.1 , 0 , 0 )
ax1.pie(sizes, explode = explode, labels = labels,
shadow = True , startangle = 45 )
plt.show() |
import matplotlib.pyplot as plt
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
fig1, ax1 = plt.subplots()
explode = ( 0 , 0.1 , 0 , 0 )
ax1.pie(sizes, explode = explode, labels = labels,autopct = '%1.1f%%' ,
shadow = True , startangle = 90 )
plt.show() |
2. 円グラフを回転させる
円グラフを回転させるには、”Startangle “を指定します。
これは、円グラフの開始点をX軸から反時計回りに指定した角度だけ回転させるものです。
実際にやってみましょう。
import matplotlib.pyplot as plt
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
colors = ( "orange" , "cyan" , "brown" ,
"grey" )
fig1, ax1 = plt.subplots()
explode = ( 0 , 0.1 , 0 , 0 )
ax1.pie(sizes, colors = colors, explode = explode, labels = labels,autopct = '%1.1f%%' ,
shadow = True , startangle = 90 )
plt.show() |
結果は以下の通りです。
出力:
import matplotlib.pyplot as plt
labels = 'Cricket' , 'Football' , 'Hockey' , 'F1'
sizes = [ 15 , 30 , 45 , 10 ]
colors = ( "orange" , "cyan" , "brown" ,
"grey" )
fig1, ax1 = plt.subplots()
explode = ( 0 , 0.1 , 0 , 0 )
ax1.pie(sizes, colors = colors, explode = explode, labels = labels,autopct = '%1.1f%%' , shadow = True , startangle = 90 )
patches, texts, auto = ax1.pie(sizes, colors = colors, shadow = True , startangle = 90 ,explode = explode, autopct = '%1.1f%%' )
plt.legend(patches, labels, loc = "best" )
plt.show() |
3. パーセンテージの表示
以下のコードで、各スライスにパーセンテージを表示することができます。
結果は以下の通りです。
4. 色のカスタマイズ
matplotlib は、円グラフをできるだけ生き生きとしたものにするためのオプションを提供します。
円グラフの色を変更するには、以下のコード行を使用します。
ここでは、使いたい色を4つ、リストで宣言しています。
そして、円グラフを描くときに、そのリストを引数として渡します。
出力は次のようになります。
5. カラーコードの表示
円グラフと一緒に、円グラフのカラースキームを含むボックスを表示することもできます。
これは、円グラフにたくさんのスライスがある場合に特に便利です。
カラーコードを表示するには、次のスニペットを使用します。
結果は以下の通りです。
結論
このチュートリアルは、Python で matplotlib を使って円グラフをプロットし、カスタマイズする方法についてでした。
私たちと一緒に楽しく学べたなら幸いです。
matplotlib の公式ドキュメントを見るには、このリンクを使用してください。