データの可視化のために、matplotlib の折れ線グラフの表示方法と表示結果を確認した。
アウトプット
matplotlib でアウトプットした折れ線グラフは下図。
plot
結論から先に書く。ax1.plot(データ , 線種指定) で折れ線グラフになる。線種は、k が黒を意味する。o (オー)で丸になり、– で破線になる。ax1.set_title() でタイトルを付ける。
コードを動かすための準備(ウィンドウとサブプロットの作成や日本語の利用など)、及びコード全文は後述する。
k で黒色へ
plot のオプションで k とすると、線の色が黒くなり、標準的な出力になる。
ax1.set_title('k 黒')
ax1.plot(np.random.randn(30).cumsum(), 'k')
破線–
オプションで — (ハイフン2つ)は破線を意味する。k– なら黒の破線で表示される。
ax2.set_title('k-- 黒破線')
ax2.plot(np.random.randn(30).cumsum(), 'k--')
丸 o
オプションの o で丸での表示になる。ko なら黒丸で表示される。
ax3.set_title('ko 黒丸')
ax3.plot(np.random.randn(30).cumsum(), 'ko')
丸破線 o–
オプションで o と — (ハイフン2つ)を両方つけると、丸破線での表示になる。
ax4.set_title('ko-- 黒丸破線')
ax4.plot(np.random.randn(30).cumsum(), 'ko--')
サブプロット間を調整して、表示する
subplots_adjust で、サブプロットの間のスペースを、見栄えがよくなるように調整する。プロットは、plt.show() で見えるようになる。
# サブプロットの間のスペースを調整
plt.subplots_adjust(wspace=0.2, hspace=0.4)
# 表示
plt.show()
準備
順番が前後したが、上記のコードを動かすための準備を下記にまとめる。
おまじない
下のコードは、いわゆる「おまじない」。どのpythonを使うか、どの文字コードを使うかを指定する。ファイルに「 chmod +x ファイル名」で実行権限をつけておくと、実行できるようになる。
#!/usr/bin/env python3.8
# -*- coding: utf-8 -*-
ライブラリのインポート
今回お世話になったライブラリ。慣例に従い、pyplot を plt と、 numpy を np と import する。
import matplotlib.pyplot as plt
import numpy as np
日本語を使う
デフォルトだと日本語が豆腐(白い四角の文字化け)になる。Ubuntu 環境だと、これを書いておけば良い。
from matplotlib import rcParams
rcParams['font.sans-serif'] = ['Noto Sans CJK JP']
ウィンドウとサブプロット
ウィンドウを作成し、その中のサブプロットを編集する仕組み。add_subplot に3つの引数があるが、順に、サブプロットを縦にいくつ、サブプロットを横にいくつ、何番目のサブプロットを編集するか、という意味。
# ウィンドウの作成
fig = plt.figure()
# 左上のサブプロットを編集
ax1 = fig.add_subplot(2, 2, 1)
コードの全文
#!/usr/bin/env python3.8
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import numpy as np
import sys
# 日本語フォント用
from matplotlib import rcParams
rcParams['font.sans-serif'] = ['Noto Sans CJK JP']
# ウィンドウの作成
fig = plt.figure()
# 左上
ax1 = fig.add_subplot(2, 2, 1)
ax1.set_title('k 黒')
ax1.plot(np.random.randn(30).cumsum(), 'k')
# 右上
ax2 = fig.add_subplot(2, 2, 2)
ax2.set_title('k-- 黒破線')
ax2.plot(np.random.randn(30).cumsum(), 'k--')
# 左下
ax3 = fig.add_subplot(2, 2, 3)
ax3.set_title('ko 黒丸')
ax3.plot(np.random.randn(30).cumsum(), 'ko')
# 右下
ax4 = fig.add_subplot(2, 2, 4)
ax4.set_title('ko-- 黒丸破線')
ax4.plot(np.random.randn(30).cumsum(), 'ko--')
# サブプロットの間のスペースを調整
plt.subplots_adjust(wspace=0.2, hspace=0.4)
# 表示
plt.show()
コメント