Pythonのmatplotlibを使って色々な円グラフを描画(プロット)する方法

スポンサーリンク

円グラフは円形の統計図形で、数値の比率を示すためにスライスに分割されています。

円グラフでは、各スライスの弧の長さは、それが表す量に比例します。

円グラフは、世論調査の結果を表すのによく使われる方法です。

この記事では、円グラフをプロットする方法を学びます。

さらに、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 は、円グラフをプロットする際に多くのカスタマイズオプションを提供します。

これらを一つずつ見ていきましょう。

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()
Pie Chart
Pie Chart
Explode
Explode

3. パーセンテージの表示

以下のコードで、各スライスにパーセンテージを表示することができます

Explode
Explode

結果は以下の通りです。

Rotate
Rotate 90

4. 色のカスタマイズ

matplotlib は、円グラフをできるだけ生き生きとしたものにするためのオプションを提供します。

円グラフの色を変更するには、以下のコード行を使用します。

Rotate
Rotate 45

ここでは、使いたい色を4つ、リストで宣言しています。

そして、円グラフを描くときに、そのリストを引数として渡します。

出力は次のようになります。

Percentage
Percentage

5. カラーコードの表示

円グラフと一緒に、円グラフのカラースキームを含むボックスを表示することもできます。

これは、円グラフにたくさんのスライスがある場合に特に便利です。

カラーコードを表示するには、次のスニペットを使用します。

Colour
Change Colours

結果は以下の通りです。

Colour Codes
Colour Codes

結論

このチュートリアルは、Python で matplotlib を使って円グラフをプロットし、カスタマイズする方法についてでした。

私たちと一緒に楽しく学べたなら幸いです。

matplotlib の公式ドキュメントを見るには、このリンクを使用してください。

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