matplotlib で折れ線グラフを描く

データの可視化のために、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()

コメント

タイトルとURLをコピーしました