【Python勉強中】plt.figureとplt.subplotで画像を並べることができた


このエントリーをはてなブックマークに追加

ここからちょっと広告です。

広告は以上です。

教科書の写経じゃない、自分で考えたコードその2ができました。その1とやり方はたいして変わっていないのですが、やはり自分で書いたものは可愛いものです。

まあ、いくつも作って慣れてくると、こうやってブログに書くほど興奮するほどでもなくなるのでしょうね……GitHubのissuesにでも残しておこうかしら……

今回書いたのは、「図を並べる」というヤツです。

まずは以下を実行し、

from PIL import Image
import matplotlib.pyplot as plt
%matplotlib inline
import math

そのあと、いろいろとconvertした画像を並べようとしたのですが、以下の書き方だと、どうしても画像が1つしか表示されませんでした。

tokyo_tower = Image.open("tokyo_tower.png")
imgmode = ["1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "HSV", "LA", "I", "F"]
imgnum = len(imgmode)
i = 0
plt.figure(figsize=(20,20))
tower = [0] * imgnum
while i < imgnum:
    tower[i] = tokyo_tower.convert(imgmode[i])
    plt.imshow(tower[i])
    i += 1

悪戦苦闘したあげく、どうやら、まずplt.figureというので、図が表示される領域を指定し、そのあとplt.subplotというので、領域を何分割し、どの領域にどの図を表示するのかを指定する必要があるらしいということがわかったので、以下のように書いたところ、

tokyo_tower = Image.open("tokyo_tower.png")
imgmode = ["1", "L", "P", "RGB", "RGBA", "CMYK", "YCbCr", "HSV", "LA", "I", "F"]
imgnum = len(imgmode)
i = 0
plt.figure(figsize=(20,20))
tower = [0] * imgnum
while i < imgnum:
    tower[i] = tokyo_tower.convert(imgmode[i])
    plt.subplot(math.ceil(imgnum / 4),4,i+1)
    plt.imshow(tower[i])
    i += 1

無事に図が複数表示されました。
ついでに縦横に格好良く並べることもできて、120点でした。

Tokyo_tower

週末のお勉強としては及第点だと、ひとり満足です。
内容は相変わらず何の役にも立たないものなのですが。

ところで、今はパソコンにjupiter notebookをインストールしてPython書いているのですが、どうもAWSのCloud9とやらでやったほうが、ローカルのマシンパワー食われずにいいのでは? という予感がしています。
しかし、金額がわからない(Cloud9自体は無料)ので、いつか時間をとって調べるまで保留中。

画像処理お遊びサービスが作りたいのですが、道のりは遠そうです。

p.s.
thx!
https://qiita.com/pashango2/items/145d858eff3c505c100a
https://teratail.com/questions/9130
https://www.headboost.jp/python-how-to-create-a-list/
https://ymgsapo.com/2019/07/21/jupyternotebook-image-show/
https://qiita.com/KntKnk0328/items/5ef40d9e77308dd0d0a4
https://qiita.com/gaku8/items/90167693f142ebb55a7d
https://openbook4.me/sections/1829
そしていつもの「Tellus×TechAcademy初心者向け Tellus 学習コース

Ads by Google

コメント

コメントは、Twitterやはてブに、以下のボタンから本記事のアドレスつきでツイート/ブクマしていただくと、上にあるzenbackのウィジェットに反映されます。
  このエントリーをはてなブックマークに追加
または同ウィジェット内のFacebookコメントでお願いしますー。

Facebookのシェアは……されても誰だかわからないのですが、シェア自体は嬉しいので、下にボタンを置かせていただきます。よろしくお願いします。