超初心者向けPython入門講座

仕事の効率化などにpythonを使いたい!けど何から始めらばよいか分からない、といった初心者の方向けに、pythonの導入から実用的な使い方まで、極力分かりやすくまとめたサイトです。

matplotlib python

matplotlibの使い方(figure・axesや複数グラフの配置・サイズについて)

投稿日:2020-06-18 更新日:

matplotlibでグラフを作成する方法には、大きく分けて2つの種類があります。

しかし、ネット上ではこの2種類のコードが混在しているため、使い分けについて意識しておかないと混乱することがあります。

そこで、今回はその使い分けについて解説します。

ちなみに、複数グラフの配置やグラフサイズについては、「figureやaxを使う書き方」で解説します。

解説内容

 

1.2種類のグラフ作成方法について

matplotlibを用いた2種類のグラフの作成方法とは、簡単に言うと「figureやaxを使うか使わないか」の違いです。

少し詳しいことを言うと、

  • figureやaxを使う書き方 = オブジェクト指向型
  • figureやaxを使わない書き方 = インターフェース型

というような分類ができますが、ここを詳しく考えると逆にややこしくなるので、ここでは解説は控えます。

 

肝心な使い分けですが、

  • 1つのグラフを簡単に作りたい場合 = figureやaxを使わない書き方
  • 複数のグラフを作ったり、細かい設定をしたい場合 = figureやaxを使う書き方

というように使い分けると良いと思います。

 

ただし、1つのグラフを作る場合でも、凡例や軸等を細かく設定したい場合もあると思うので、おすすめは「figureやaxを使う書き方です。

 

では、次の章から実際にグラフの作成方法の種類について学んでいきましょう。

Point
  • 1つのグラフを簡単に作りたい場合 = figureやaxを使わない書き方
  • 複数のグラフを作ったり、細かい設定をしたい場合 = figureやaxを使う書き方
  • おすすめは「figureやaxを使う書き方」

 

2.figureやaxを使わない書き方(インターフェース型)

まず、figureやaxを使わない書き方について解説します。

この書き方では、plt.plot(x,y)という書き方で図化を行います。

では、下のコードを実行してみてください。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(51)
y = x**2
plt.plot(x, y)
plt.show()

すると、y=x**2のグラフが作成できます。(x**2とは、xの2乗のことです。)

実際に図化を行っているのは、たった1行「plt.plot(x,y)」の部分だけです。

 

この書き方はグラフを作成するために書くコードが短く、素早く図化できるため、簡単なチェック等に向いています。

ただし、複数グラフを作成し並べて表示するなど、複雑な処理はできないためあくまでチェック用に使うことをお勧めします。

Point
  • plt.plot(x,y)という書き方で図化
  • グラフを作成するために書くコードが短く、素早く図化できる
  • 簡単なチェック等に向いてる

 

3.figureやaxを使う書き方(オブジェクト指向型)

では次に、figureやaxを使う書き方について解説します。

1.matplotlibのfigureやaxって何?

まずは、グラフの書き方の前に、figureやaxとは何かについて簡単に説明したいと思います。

それぞれの意味は、下のようなものです。

  • figure:グラフを書くための紙
  • ax:実際に書くグラフ

 

文章だと分かりずらいので、図化すると下のようなイメージです。

 上の図では、figureという1枚の紙の上に、ax1~ax4という4つのグラフが書かれた状態を示しています。

 

このイメージをしっかりと持ったうえで、次の章で実際にグラフを作成してみましょう!

 

2.figureやaxを用いたグラフの作成(add_subplot)

では、実際にfigureやaxを用いてグラフを作成します。

まずは下のコードを実行してみてください。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(51)
y = x**2
fig = plt.figure(figsize=(8,5))
ax = fig.add_subplot(111)
ax.plot(x, y)
plt.show()

すると、下のように「2.figureやaxを使わない書き方」と同様のグラフが作成できました。

 

「2.figureやaxを使わない書き方」と比較すると、「plt.plot(x,y)」で済んでいた描画のコードが、

fig = plt.figure(figsize=(8,5))
ax = fig.add_subplot(111)
ax.plot(x, y)

という3行に置き換わり、少し長くなったことが分かります。

ではこの3行について詳しく解説していきます。

 

まず、1行目の

fig = plt.figure(figsize=(8,5))

ですが、「plt.figure()」で、figure(グラフを書く紙)を準備しています。

その際、plt.figureの()の中の「figsize」でfigureの大きさを指定しています。

今回は8×5のfigureを準備しています。(幅×高さ)

 

次に、2行目の

ax = fig.add_subplot(111)

ですが、ここでは「fig.add_subplot()」でaxを準備しています。

その際、fig.add_subplotの()で、axの場所を指定しています。

 

axの場所指定については、以下のルールで指定します。

言葉では分かりにくいので、これを図化すると下のようになります。(下の図は、2行2列のaxの場合です。)

 

そして、axの番号は1から始まり、「左上から右方向に、また端までいったら次の行に移る」という順番に数字が大きくなります。

順番としては、「Z」のような形です。

 

実際にax = fig.add_subplot(111)の(111)の部分を、(221)や(332)に変えてどのようになるか確認してみるとより理解が深まると思います。

((221)の場合は、2×2の中の左上の部分、(332)の場合は、3×3の真ん中上の部分にグラフが描画されます。)

 

最後に、3行目の

ax.plot(x, y)

ですが、これは「作成したaxにプロットする」という意味で、axを指定してplt.plot()を行っていることと同じになります。

 

3.複数グラフを並べてみよう

では、先ほど学んだことを用いて、1つのグラフを並べてみようと思います。

やることは、同じfigure上に横並びのaxを準備し、それぞれにグラフを描画する、といった手順です。

では、下のコードを実行してみてください。

import numpy as np
import matplotlib.pyplot as plt
x = np.arange(51)
y1 = x**2
y2 = x + 10
fig = plt.figure(figsize=(16,5))
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax1.plot(x, y1)
ax2.plot(x, y2)
plt.show()

すると、下のように2つのグラフを並べることができました。

(figureサイズ:幅16、高さ5 ax:1行2列)

 

このように、複数のaxを用いる時は、ax1・ax2と名前を分けてつけ、それぞれの描画位置を指定して描画します。

 

これで、figureとaxを用いた作図について理解できたと思います!

Point
  • figureはグラフを書くための紙、axは実際に書くグラフというイメージ
  • 「plt.figure()」でfigure(グラフを書く紙)を準備
  • 「fig.add_subplot()」でaxを準備

 

4.おわりに

今回は、matplotlibでグラフを作成する際の、2種類の方法について解説しました。

私自身、グラフの作成についてネットで学んで居る際に、このfigureやaxを使っているものと使っていないものが混在していたことでかなり混乱しました。

この2つの書き方はしっかりと分けて理解し、特にfigureやaxについてのイメージできていれば、グラフ作成で迷うことが減ると思います。

このサイトで皆さんの疑問が少しでも解決出来たら幸いです。

 

なお、このサイトでは初心者の方向けに「Python初心者入門講座」という講座を作成していますので、気になった方はそちらもご覧ください。

スポンサーリンク




スポンサーリンク




-matplotlib, python
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

2次元平面分布図における範囲外の凡例や色合いの設定(Python)

今回は、Pythonで平面分布図を作成する際の色合いや、凡例の設定、また凡例の範囲外の色の設定について解説したいと思います。 解説内容 平面分布図の色合いの設定 平面分布図の凡例の設定 平面分布図にお …

第5章 Pythonの条件分岐(if)を使ってみよう

この章では、Pythonの条件分岐を使っていこうと思います。4章のまとめでも少し話しましたが、今までの「変数」、「ループ処理(for)」に加え、本章の「条件分岐(if)」が使えると、簡単なデータ処理は …

第6章 Pythonで計算してみよう

この章では、Pythonを使って「計算」を行っていこうと思います。皆さんがイメージしている通り、「1 + 1 = 2」みたいなものを、プログラミング上でやってみよう!というものです。 「計算」ができる …

PythonのpandasでExcelを操作しよう(読み込み、書き込み)

今回は、Pythonのライブラリである「pandas」を用いたExcelの読み書きについて解説したいと思います。 他のライブラリを用いてもエクセルを操作することはできますが、「pandas」は使う機会 …

第11章 Pythonでテキストファイルを読み込んでみよう(read、readlines、readline)

9章では、「input」を使ってプログラムの外から値を入力しましたね。この章では、「テキストファイル」からのデータの読み込みについて解説したいと思います。(次章では「csvファイル」の読み込みについて …

スポンサーリンク





初めまして、サイトを運営しているキユと申します。

このサイトでは、まったくの初心者がPythonを使って、単純作業や仕事を効率化できるようになるまでに必要なことをまとめています。