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 — Visualization with Python

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

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

エージェントへの登録はお済みですか?

今すぐフリーランスになる気がなくても、エージェントへの登録は済ませておくことをお勧めします。理由はストレスや疲労が限界に達してからだと遅いから。

現在の自身のフリーランスとしての価値・単価相場を把握できますし、条件にあった案件をキャッチできるようになるので、いざフリーランスになろうとした際に早期に手が打てます。

エージェント登録は無料なので、今はフリーランスにならなくとも登録だけはしておくべきです。

真っ先に登録すべきエージェントは、圧倒的に多くのクライアントを開拓しているDYMテック。2500社の優良な取引先と、条件交渉力が強く高条件で仕事を紹介してくれるエージェントです。

案件紹介のみでなく、エンジニアとしてのキャリア相談や業界動向のキャッチアップなど、フリーランス対してのサポートも充実していますので、初めてフリーランスに挑戦する方も安心です。

DYMテックの詳細を見る

フリーランスエンジニアの働き方
スポンサーリンク
shigotoswitchをフォローする
しごとスイッチ