icon
icon

グラフ描画ライブラリ!matplotlibの使い方【初心者向け】

Pythonでグラフ描画ができるライブラリmatplotlibの使い方について詳しく解説しています。折れ線グラフや棒グラフ、円グラフなど2次元でも3次元でもグラフを表示することができます。それぞれ書き方を説明しているので、参考にしてみてください。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、Pythonのグラフ描画ライブラリであるmatplotlibについて解説します。

matplotlibを使うと、様々な種類のグラフを描画したり、イメージを表示したりすることができるようになります。

Pythonでグラフを描画するには、標準的なライブラリですので、この記事を参考に、matplotlibの使い方を覚えていきましょう。

 

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

 

目次

1時間でできる無料体験!

 

大石ゆかり

田島メンター!matplotlibというのは何でしょうか?

田島悠介

Pythonのグラフ描画ライブラリだよ。Pythonでグラフ描画を行う、標準的なライブラリなんだ。

大石ゆかり

どのような機能があるのですか?

田島悠介

例を見ながら説明していくね!

 

matplotlibとは

matplotlibは、Pythonでグラフを描画したり、イメージを表示させたりする際に使用するライブラリです。matplotlibはオープンソースで公開されており、個人/商用問わず、誰でも無料で利用することができます。

matplotlibを使うと、様々な種類のグラフを描画することができます。主に2次元のグラフですが、3次元のグラフも描画することができます。数値計算ライブラリであるNumPyと組み合わせて利用する場合が多く、またJupyter Notebookを用いて、データ分析結果をソースコードと共にグラフィカルに表現することで、説明力の高いレポートを作成することができます。

matplotlibはNumPyと並び、Pythonでデータ分析を行うには、必須のライブラリと言えるでしょう。

 

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

matplotlibを利用するには

matplotlibを利用するには、Anacondaなどの開発環境のパッケージを使うのが簡単です。

Anaconda

Anacondaは、データ分析やグラフ描画など、Pythonでよく利用されるライブラリを含んだ開発環境です。

Anacondaをインストールすると、matplotlibもインストールされています。もしインストールされていない場合は、メニュー画面のEnvironmentsから、Not Installedを選択し、検索BOXに「matplotlib」と入力します。一覧にmatplotlibが表示されますので、チェックボックスで選択し、画面右下のApplyボタンを押すことでインストールすることができます。

以降は、Jupyter Notebookをもとに、matplotlibの使い方を説明していきます。

Jupyter Notebookの使い方についても合わせてご覧ください。

 

matplotlibの使い方

matplotlibを使う際は、初めにmatplotlibライブラリをインポートします。先頭の「% matplotlib inline」は、Jupyter Notebookで、ノートブック上にグラフを描画する際に指定する記述です。

% matplotlib inline
import matplotlib.pyplot as plt

実行結果は特にありません。エラーがでなければ、正しくインポートされています。

 

折れ線グラフ

折れ線グラフを描画するには、plot命令を使用します。この例では、併せてグラフのタイトル、ラベルも設定しています。

% matplotlib inline
import matplotlib.pyplot as plt

price = [100, 250, 380, 500, 700]
number = [1, 2, 3, 4, 5]

# グラフを書く
plt.plot(price, number)

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

# x軸のラベル
plt.xlabel("price")

# y軸のラベル
plt.ylabel("number")

# 表示する
plt.show()

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

グラフにマーカーを表示するには markerオプションを使用します。グリッドを表示するにはgridオプションにTrueを指定します。

% matplotlib inline
import matplotlib.pyplot as plt

price = [100, 250, 380, 500, 700]
number = [1, 2, 3, 4, 5]

# グラフを書く
plt.plot(price, number, marker="x")

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

# x軸のラベル
plt.xlabel("price")

# y軸のラベル
plt.ylabel("number")

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

# 表示する
plt.show()

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

散布図

散布図を描画するには、scatter命令を使用します。ソースコードで使用しているrandは、乱数を生成する命令です。

% matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
X = [np.random.rand(100) * 10]
Y = [np.random.rand(100) * 10]
# 散布図を描画する
plt.scatter(X, Y)
plt.show()

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

 

棒グラフ

棒グラフを描画するには、bar命令を使用します。

import matplotlib.pyplot as plt
labels = ["A", "B", "C", "D", "E", "F"]
x = range(0, 6)
y = [10, 20, 30, 40, 50, 60]
# 棒グラフを描画する
plt.bar(x, y, tick_label = labels) 
plt.show()

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

 

円グラフ

円グラフを描画するには、pie命令を使用します。

import matplotlib.pyplot as plt
# ラベルと値は反時計回りに指定します
labels = ["E", "D", "C", "B", "A"] 
y = [10, 20, 30, 40, 50] 
# 円グラフからの飛び出し
ex = [0, 0, 0, 0, 0.1] 
# 円グラフを描く
plt.pie(y, explode = ex, labels = labels, autopct = '%1.1f%%', startangle = 90) 
plt.show()

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

 

複数のグラフを並べて表示する

複数のグラフを並べて表示するにはfigure命令を使用し、add_subplot命令でそれぞれの領域に描画します。

書き方:add_subplot(行数, 列数, 番号)

import matplotlib.pyplot as plt
fig = plt.figure()

# 1行2列の左
labels = ["A", "B", "C", "D", "E", "F"]
x = range(0, 6)
y = [10, 20, 30, 40, 50, 60]
ax1 = fig.add_subplot(1, 2, 1)
ax1.bar(x, y, tick_label = labels) 
ax1.set_title("graph1")

# 1行2列の右
labels = ["E", "D", "C", "B", "A"] 
y = [10, 20, 30, 40, 50] 
ex = [0, 0, 0, 0, 0.1] 
ax2 = fig.add_subplot(1, 2, 2)
ax2.pie(y, explode = ex, labels = labels, autopct = '%1.1f%%', startangle = 90) 
ax2.set_title("graph2")

# グラフを表示する
plt.show()

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

 

田島悠介

matplotlibについて、理解は深まったかな?

大石ゆかり

いろんな種類のグラフが描画できるんですねー。勉強になりましたー!

田島悠介

サンプルプログラムをもとに、いろいろ試して学習を深めるといいよ!

深層学習画像認識自然言語処理については、また別のところで説明するね。

大石ゆかり

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

 

今回は、Pythonのグラフ描画ライブラリのmatplotlibについて解説しました。

これからmatplotlibを勉強したい、機械学習を使って何か作ってみたいという方は最初に理解しておきたい内容でしょう。

 

また、オンラインのプログラミングスクールTechAcademyでは、AIオンライン講座を開催しています。

AI(人工知能)の構築に必要な機械学習・ディープラーニングについて実践的に学習することができます。

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

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

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

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

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する