Pythonでグラフを描くには

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の公式サイト

Matplotlib: Python plotting — Matplotlib 3.3.3 documentation

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

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

エージェント登録はリモートワーク特化のエージェントが推し!

今すぐフリーランスにならなくてもエージェント登録は済ませておくことお勧めします。現在の動向や相場・自身の価値を把握できますし、いざフリーランスになろうとした際に早期に手が打てます。

エージェント登録は無料なので登録だけはしておくべきです。

この時代に推したいのはエージェント会社がリモートワーク可能な案件だけを紹介するリモートビズ。 在宅、副業、時短などスタイルに合わせた働き方が可能です。

リモートビズに登録する

Python
shigotoswitchをフォローする
しごとスイッチ