Pythonでデータをプロットしてグラフを描く方法【初心者向け】

初心者向けにPythonのライブラリMatplotlibでデータをプロットしてグラフを描く方法について解説しています。ここではサンプルプログラムを使って実際に簡単な折れ線グラフを作成していきます。各軸の指定方法、オプションによる表示の変更方法などを覚えましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PythonのライブラリMatplotlibでデータをプロットしてグラフを描く方法について解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

ライブラリMatplotlibでデータをプロットしてグラフを描く方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

データのプロットとは

プロット(plot)とは、描画する、点を打つなどの意味を持ちます。データをプロットした図をグラフといいます。 Python でグラフを作成するライブラリが Matplotlib です。  Matplotlib は、 Python でグラフを描画する際、最も多く使われているオープンソースのライブラリです。ライセンスはBSDスタイルの独自ライセンスです。「マットプロットリブ」と読みます。

Matplotlib は、2Dだけでなく3Dのグラフも描画することができます。また、 Python の他のライブラリとの親和性が高く、様々なデータを簡単にグラフ化することができます。 Matplotlib では以下のようなグラフを描画することが可能です。

  • 折れ線グラフ
  • 折れ線グラフを応用した曲線グラフ
  • ヒストグラム
  • 散布図
  • 棒グラフ
  • 円グラフ
  • 箱ひげ図
  • 3Dグラフ

オプションの指定方法など、詳細は公式サイトを確認してください。

https://matplotlib.org/index.html

Matplotlib によるグラフの作成方法は以下の記事も参考にしてください。

PythonのライブラリMatplotlibで棒グラフを描く方法

Pythonでヒストグラムを作成する方法

 

データをプロットしてグラフを描く方法

Matplotlib で線グラフを書くには、 matplotlib.pyplot モジュールの plot メソッドを使用します。

描画対象となるデータは、y軸のみ、またはx軸とy軸の両方を指定することができます。

# y軸のみ指定する方法
plt.plot(y軸の値, オプション)

# x軸とy軸の両方を指定する方法
plt.plot(x軸の値, y軸の値, オプション)

オプションは省略可能です。オプションには以下のような種類があります。

名称 説明 値の例
marker 値の位置の印 “o”, “v”, “^”, “d”
color 線の色 “red”, “blue”, green”
linestyle 線の形 “-“, “–“, “-.”, “:”

また、グラフ全体にラベルやタイトルを付けることができます。

plt.title("タイトル")
plt.xlabel("x軸のラベル")
plt.ylabel("y軸のラベル")

# グリッド線を表示するならTrue
plt.grid(True)

グラフを分割して描画することもできます。グラフの分割には add_subplot メソッドを使用します。

# 例:1行2列に分割し、1番目(左側)に描画する
fig = plt.figure()
ax1 = fig.add_subplot(1, 2, 1)
ax1.plot(...)

ひととおり設定が終わったら、show メソッドでグラフを描画します。

plt.show()

 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

まずは Matpliotlib をインストールしましょう。パソコンが Macならターミナル、Windowsならコマンドプロンプトから以下のコマンドでインストールします。なお、事前に Python のインストールが必要です。

pip install matplotlib

また、実行環境により、グラフを表示させるための設定が必要です。

 

ターミナル/コマンドプロンプトから実行する場合

グラフをファイルに保存して確認します。ファイルに保存するには以下ように「この行を追記」と書かれた行を追記します。

import numpy as np
import matplotlib.pyplot as plt
matplotlib.use('Agg') # この行を追記

# ここにグラフを描画する処理を記載する
plt.savefig("hoge.png") # この行を追記

 

JupyterNotebookから実行する場合

先頭に「% matplotlib inline」と記載します。

% matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

# ここにグラフを描画する処理を記載する

 

それではサンプルプログラムと実行結果を確認していきましょう。はじめに以下のプログラムを実行します。

import matplotlib.pyplot as plt

x = [100, 200, 300, 400, 500, 600]
y = [10, 20, 30, 50, 80, 130]

plt.plot(x, y)
plt.show()

実行結果は以下のようになります。

次はオプションを指定してみましょう。

import matplotlib.pyplot as plt

x = [100, 200, 300, 400, 500, 600]
y1 = [10, 20, 30, 50, 80, 130]
y2 = [10, 15, 30, 45, 60, 75]

plt.plot(x, y1, marker="o", color = "red", linestyle = "--")
plt.plot(x, y2, marker="v", color = "blue", linestyle = ":")
plt.show()

実行結果は以下のようになります。

最後はグラフを分割して描画する例です。

import matplotlib.pyplot as plt

x = [100, 200, 300, 400, 500, 600]
y1 = [10, 20, 30, 50, 80, 130]
y2 = [10, 15, 30, 45, 60, 75]

fig = plt.figure()

# 1行2列に分割した中の1(左側)
ax1 = fig.add_subplot(1, 2, 1)
ax1.plot(x, y1, marker="o", color = "red", linestyle = "--")

# 1行2列に分割した中の2(右側)
ax2 = fig.add_subplot(1, 2, 2)
ax2.plot(x, y2, marker="v", color = "blue", linestyle = ":")

plt.show()

実行結果は以下のようになります。

 

この記事を監修してくれた方

太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。