"0"からAI~ふらっとどうぞ~

自分は独学でゼロからAIについて学んでいる学生です。このブログは主にAIやネットワークの基本を理解できるようにブログという形で分かりやすくアウトプットしたものです。AIについて学びたいなと思っている方。ぜひこのブログで勉強して見てください!またある程度AIについて知識がある方も何かをを得るヒントにしてくてくれれば幸いです。Twitterアカウントもあるので是非フォローお願いします!

1つを極める~matplotlib編part4

こんにちは。今日も張り切って行きましょう

 

前回のおさらい

  • ダッシュ線の書式を変更→dash_capstyle
  • ダッシュ線の間隔を指定→dashes
  • マーカーの淵の色を変更→markeredgecolor(mec)
  • マーカーの淵の幅を変更→markeredgewidth(mew)

 

でした。

今回はplot()から一旦離れて違う関数についてアウトプットしていけたら

と考えております。

 

今日の内容

 

です。

 

真っ白な新しいウィンドウを描画・・figure()

matplotlib.pyplot (pltと呼ぶことにします)に含まれるfigure()メソッドは

何も描画されてない新しいウィンドウを作るメソッドです。

 

いわば「これから書きまーす!!!」みたいな宣言をするときに使います。

このfigure()にも引数(オプション)が用意されていて

  • 保存するときの図のサイズ変更→figsize
  • 1インチあたりのドット数変更→dpi
  • 背景色を変える→facecolor
  • 枠の色を変える→edgecolor

などが挙げられます。

figure()で引数をいじってみて描画してみます。 

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
fig=plt.figure(facecolor='r',edgecolor='b')
ax1=fig.add_subplot(2,2,1) #サブプロットを挿入
ax2=fig.add_subplot(2,2,2) #サブプロットを挿入
fig

 

f:id:zawapython:20200409215833p:plain

背景が赤色になった。淵の色がわかりづらい笑

挿入された2つのグラフの背景が赤色になってます。

イメージとしてfigure()により描画する所の大元が設定される感じです。

 

ちょっと見慣れないメソッドが出てきましたね。

 

新たなサブプロットを追加する・・add_subplot()

add_subplot()は図にサブプロットを挿入するときに使うメソッドです。

 

サブプロットとは?
→1つのグラフを描く為の領域のようなもの

add_subplot()には引数が用意されていてこの理解が大事です。

 

add_subplot(a,b,c)

a・・図を水平方向にa分割してね

b・・図を垂直方向にb分割してね

c・・a×b分割したうちのc番目ね

 

という引数です。

 先ほどのコマンドで説明すると 

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
fig=plt.figure(facecolor='r',edgecolor='b')
ax1=fig.add_subplot(2,2,1) #サブプロットを挿入
ax2=fig.add_subplot(2,2,2) #サブプロットを挿入
fig

 

 ax1なら

「図を2×2分割したときの1番目にサブプロットを挿入

 

ax2なら

「図を2×2分割したときの2番目にサブプロットを挿入

 

となります。

では「図を2×2分割したときの3番目にサブプロットを挿入」すると

何処にサブプロットが生成されるでしょうか?

正解は・・

 

f:id:zawapython:20200409221931p:plain

左上から順番に数える

左下でした〜〜

ポイントは番号は左上から数えることです。 

この場合だと左上から1。右に移動して2

左下で3。ということになります。

 

けどこれ3x3のサブプロットを作ろうと思ったときや, より分割された図を作ろう

と思ったときいちいちこれを打ち込むのは辛い・・

しかし!!!

めっちゃ便利なメソッドが用意されているんです。

 

超便利!! subplots()

例えば2x3のサブプロットを1つの図で作りたいとき

 

import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
fig,axes=plt.subplots(2,3)

f:id:zawapython:20200409222615p:plain

一瞬でできる

 でおしまいなんです。

subplots()に2つの引数は行番号と列番号を示していて

ここの引数をいじるだけで完結してしまうのです。

 

さらにsubplotsのすごいところは

指定したサブプロットに対して編集をかけることができます。

例えば1行2列目のプロットに対して編集したい場合。

 

「axes[0,1].コマンド」で行うことができます

subplotsの返り値は画像情報とサブプロットオブジェクトの配列で

受け取った配列を指定することでそのサブプロットに

対して編集をかけることが可能になります。

 

参考文献・サイト

Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 第2版 ―NumPy、pandasを使ったデータ処理

  • 作者:Wes McKinney
  • 発売日: 2018/07/26
  • メディア: 単行本(ソフトカバー)
 

 

qiita.com

 

次回もう少しsubplots()について説明して行きます。

当ブログはAmazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。