はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Python】matplotlibを軽く触ってみる

はじめに

今回はmatplotlibというライブラリを触ってみるという記事になります!

最近Tensorflowの勉強を初めているのですが、画像データ(RGBの2次元配列)であったりグラフなどを可視化するためにmatplotlibを使うのが一般的のようです。

matplotlibとはどういったものかというとこのように紹介されています。

Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python.

Matplotlib: Python plotting — Matplotlib 3.2.1 documentation

様々なデータを可視化できる包括的なライブラリといったところでしょうか。

では早速使い方見ていきましょう。

グラフの描画

グラフの描画にはmatplotlib.pyplot.plotmatplotlib.pyplot.showを使います。

import matplotlib.pyplot as plt
x = [1,2,3,4,5,6,7]
y = [10,20,40,80,40,20,10]
plt.plot(x, y)      # プロット
plt.show()          # 作成したグラフを表示

f:id:hanaaaaaachiru:20200405214834p:plain

このx,yのリストは共に同じ数にすることに注意してください。

また軸にラベルを付けたりタイトルを付けたりすることもできたりします。

この記事が分かりやすく説明してくださっていました。
qiita.com


加えて公式ドキュメントを見てみると、fmt**kwargsという引数を用いることで色々とカスタマイズすることができます。

plt.plot(x, y, color='green', marker='o', linestyle='dashed', linewidth=2, markersize=12)

f:id:hanaaaaaachiru:20200406004825p:plain

ここには書ききれないほど種類があるので是非公式ドキュメントを一読ください。
matplotlib.pyplot.plot — Matplotlib 3.2.1 documentation

画像を表示する

あとは機械学種においては入力画像がどんなものか知りたいなどの場面がよくあると思います。

import matplotlib.pyplot as plt
img = [[255, 122, 255], [0, 255, 0], [255, 100, 0]]   # 画像データ(グレー画像(0~255))
plt.imshow(img)                                                                 # 画像の表示

f:id:hanaaaaaachiru:20200406010305p:plain

これもタイトルを付けたりヒストグラムを表示したり色々とできるみたいです。

www.mwsoft.jp


一応公式ドキュメントを見てみるともはや引数が多すぎて訳がわかりません。
matplotlib.pyplot.imshow — Matplotlib 3.2.1 documentation

ただ基本はデフォルトのままで困ることはなさそうです。

さいごに

本当に軽く触ってみたという中身のほぼない記事になってしまい申し訳ありません。

ただ言い訳じみてしまいますがPythonのシグニチャは見辛すぎて逆にビックリしてしまいました。

例えばpyplot.plotメソッドのシグニチャはこんな感じ。

plt.plot(*args, scalex=True, scaley=True, data=None, **kwargs)

matplotlib.pyplot.plot — Matplotlib 3.2.1 documentation

Pythonは基本的にこういう書き方なのかこのドキュメントがそうなのか分かりませんが、正直これを見ただけでピンとくる方はいるのでしょうか。

まあPythonに全く慣れていないことが原因だと思うので、もっと精進したいと思います。

ではまた。