MENU

Pythonでグラフを描くには

Pythonでグラフを書く

Pythonはデータ分析に使用できます。しかし、実際に見てみないと、何ができるのか分かりません。
データ分析の一例として、各種グラフを描けます。この記事では、折れ線グラフ、棒グラフ、円グラフの描き方のコードを示し、それぞれの表示結果を紹介します。

目次

matplotlib

Pythonでグラフを描くライブラリは、matplotlibです。

まずはmatplotlibをインストールします。

pip install matplotlib

Jupyter Notebookを使ってグラフを描くこともできますが、この記事では、Python環境さえあればできる方法を紹介します。

グラフを描くPythonコードは、以下のようなひな型になります。

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

…グラフを描く処理…

plt.savefig("出力ファイル名.png")

まず、

mpl.use('Agg')

はおまじないだと思ってください。

plt.savefig()

でグラフをファイルに保存し、そのファイルを開いて描いたグラフを確かめます。出力形式はPNG形式です。

では、実際にグラフを描いてみます。

折れ線グラフを描いてみる

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [10, 25, 30, 50, 100]

#折れ線グラフを描画
plt.plot(x, y)

#グラフのタイトル
plt.title('title')
#x軸の名前
plt.xlabel('x')
#y軸の名前
plt.ylabel('y')
#グリッド線を描く
plt.grid(True)

#Jupyter Notebookなら以下で表示される
#plt.show()

plt.savefig("折れ線グラフ.png")

Python 折れ線グラフ

plt.plot(x,y)

で折れ線グラフが描けます。x、yは配列でデータを指定します。

  • グラフのタイトル
  • x軸の名前
  • y軸の名前
  • グリッド線の有無

などが指定できます。

棒グラフを描いてみる

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
labels = ['A', 'B', 'C', 'D', 'E']
h = [10, 25, 30, 50, 100]

#棒グラフを描画
plt.bar(x, h, tick_label = labels, color="g")

#グラフのタイトル
plt.title("title")
#x軸の名前
plt.xlabel("x")
#y軸の名前
plt.ylabel("y")
#グリッド線を描く
plt.grid(True)

#Jupyter Notebookなら以下で表示される
#plt.show()

plt.savefig("棒グラフ.png")

Python 棒グラフ

plt.bar(x,h)

で棒グラフが描けます。

ここで指定しているオプションは以下です。
tick_label:x軸の各棒に付けるラベル。文字列の配列で指定。
color:棒の色。ここでは緑。

その下の指定は、折れ線グラフと変わりません。

円グラフを描いてみる

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

labels = ['A', 'B', 'C', 'D', 'E']
x = [10, 25, 30, 50, 100]

#円グラフを描画
plt.pie(x, labels = labels, autopct="%1.0f%%")

#グラフのタイトル
plt.title("title")

#Jupyter Notebookなら以下で表示される
#plt.show()

plt.savefig("円グラフ.png")

Python 円グラフ

データをxの配列に代入して、

plt.pie(x)

で自動的に円グラフが描けます。

ここで指定しているオプションは以下です。
labels:各データのラベル。文字列の配列で指定。
autopct:割合を表示。書式指定文字列(ここでは小数点以下0桁)

  • グラフのタイトル

は折れ線グラフと変わりません。

応用編:立体グラフ

最後に応用編として、立体グラフを描いてみます。

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

import numpy as np
from scipy.interpolate import griddata

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

x = []
y = []
z = []
for i in range(10):
    for j in range(10):
        x.append(i)
        y.append(j)
        z.append(i**3 + j**3)

x_new, y_new = np.meshgrid(np.unique(x), np.unique(y))
z_new = griddata((x, y), z, (x_new, y_new))

ax.plot_wireframe(x_new, y_new, z_new)

plt.savefig("立体グラフ.png")

Python 立体グラフ

難しいので、コードの説明は割愛します。でも、これだけのコード量で立体グラフが描けるというのは素晴らしいと思いませんか?Pythonの面目躍如です。

まとめ

ここまで見てきたグラフの描き方、オプションについて詳しくは、matplotlibの公式サイト

あわせて読みたい

を参照してください。英語ですが、読みやすい英語です。

Pythonでは手軽にグラフが描けることが分かりました。
Pythonをデータ分析に活用していきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

管理人のよしぞと申します。
フリーランス業界で働いている管理人が、業界で働く様々な視点からフリーランスエンジニアに挑戦するためのノウハウを掲載。独立を考えている方にとって手助けになるサイトを目指しています。

目次