Python PR

【Python】matplotlibを使ってグラフを描画する方法を解説

記事内に商品プロモーションを含む場合があります

この記事では、Python で matplotlib(マットプロットリブ) を使ってグラフを描画する方法を解説します。

matplotlib を使うことで簡単にデータを可視化させることができます。

それでは、簡単なサンプルを混えて使い方を見ていきましょう!

インストール

matplotlib は標準ライブラリではないので pip を使ってインストールしましょう!

ターミナルやコマンドプロンプト

pip install matplotlib

pipを使ってパッケージ管理する方法

基本的な使い方

matplotlib で簡単なグラフを描画してみて使い方を確認してきましょう!

import matplotlib.pyplot as plt

# x軸とy軸の値の指定
plt.plot([1, 2, 3, 4], [10, 20, 30, 40])

# 表示
plt.show()

上記コードを実行すると以下のような折れ線グラフが表示されます。

それでは、細かくコードを見ていきます。

インポート

まずは、matplotlibpyplotモジュール を plt という名前でインポートします。

import matplotlib.pyplot as plt

プロットの設定

plot() にイテラブルを指定することで x軸 と y軸 の値を指定できる。

plt.plot([1, 2, 3, 4], [10, 20, 30, 40])

値を変えてみるとさらに理解が深まると思います。

グラフの描画

作成したグラフを画面に表示します。

plt.show()

これだけで先ほどの折れ線グラフを描画することができました。

折れ線グラフは plot()、棒グラフは bar()、ヒストグラムは hist()、散布図は scatter() で描画することができます。

情報の追加

グラフに様々な情報を追加して分かりやすくすることができます。

タイトルの追加

タイトルを描画するには tilte() を使います。

plt.title('Graph')

タイトルやラベルに日本語を使うと文字化けしてしまいます。日本語を使いたい場合は以下の記事が参考になります。

LinkMacにおけるmatplotlibの日本語表示 | OpenBook

ラベルの追加

x軸 のラベルを xlabel()、y軸 のラベルを ylable() で配置できます。

# x軸 のラベル
plt.xlabel('X Label')

# y軸 のラベル
plt.ylabel('Y Label')

グリッド線の表示

グリッド線を表示させるには grid() に True を指定する。

plt.grid(True)

凡例の配置

凡例は、それぞれの plot に label を指定し、plt.legend() を呼び出すことで配置できる。

import matplotlib.pyplot as plt

# 青色の実線
plt.plot([1, 2, 3, 4], [10, 20, 30, 40], label='Blue')
# 赤色の破線
plt.plot([1, 2, 3, 4], [5, 15, 25, 35], linestyle='dashed', color='red', label='Red')

# 凡例の配置
plt.legend()

plt.show()

legend() の引数に loc を指定することで凡例を配置する場所を設定できる。1で右上、2で左上、3で左下、4で右下、5で中央右、6で中央左 を指定できる。

グラフを保存する

作成したグラフを保存するには plt.figure() から Figureインスタンス を生成し、savefig()メソッド を呼び出すことで保存できます。

import matplotlib.pyplot as plt

# Figureインスタンス の生成
fig = plt.figure()

plt.plot([1, 2, 3, 4], [10, 20, 30, 40])

# 「g.png」という名前で保存
fig.savefig("g.png")

実行すると同ディレクトリ内に「g.png」が生成されます。

ちなみに、jpeg、pdf、svg などの様々なフォーマットに対応しています。

まとめ

この記事では、matplotlib を使ってグラフを描画する方法を解説しました。

グラフにすることでデータをわかりやすく可視化することができます。複数のグラフが用意されているのでデータによって使うグラフを合わせましょう!

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ