基本の折れ線グラフ
次は折れ線グラフの見た目を色々と変えてみます。いつものように、ランダムなデータを準備しておきます。
import numpy as np import matplotlib.pyplot as plt np.random.seed(0) # 0~100のランダム値(整数)を生成 x = [i for i in range(20)] y = [np.random.randint(0, 100) for i in range(20)]
何も設定を変えない場合はこんな感じです。
_, ax = plt.subplots() ax.plot(x, y) plt.show()
色の変更
色はオプションcで変えられます。
ax.plot(x, y, color='r')
線の太さを変える
線の太さはlinewidthで変更します。
ax.plot(x, y, color='r', linewidth=4)
マーカーの変更
マーカーの種類はmarkerで変更できます。
ax.plot(x, y, marker='o')
使えるマーカーは種類は以下のMarkers参照
matplotlib.axes.Axes.plot – Matplotlib 3.5.2 documentation
マーカーの種類の可視化 (一部)
試しにいくつかマーカーを書いてみました。$$でくくることで、マーカーに文字列を使うこともできます。
fig, ax = plt.subplots(4, 3, figsize=(10, 6)) # デフォルト ax[0, 0].plot(x, y) ax[0, 0].set_title('None') # 小さい丸 ax[0, 1].plot(x, y, marker='.', markersize=7) ax[0, 1].set_title('.') # 大きい丸 ax[0, 2].plot(x, y, marker='o', markersize=7) ax[0, 2].set_title('o') # 下向き三角 ax[1, 0].plot(x, y, marker='v', markersize=7) ax[1, 0].set_title('v') # 左向き三角 ax[1, 1].plot(x, y, marker='<', markersize=7) ax[1, 1].set_title('<') # 下向きの三本線記号 (これ何ていう記号なんでしょうか。。) ax[1, 2].plot(x, y, marker='1', markersize=7) ax[1, 2].set_title('1') # 8角形 ax[2, 0].plot(x, y, marker='8', markersize=7) ax[2, 0].set_title('8') # 5角形 ax[2, 1].plot(x, y, marker='p', markersize=7) ax[2, 1].set_title('p') # ×印 ax[2, 2].plot(x, y, marker='x', markersize=7) ax[2, 2].set_title('x') # 縦線 ax[3, 0].plot(x, y, marker='|', markersize=7) ax[3, 0].set_title('|') # 横線 ax[3, 1].plot(x, y, marker='_', markersize=7) ax[3, 1].set_title('_') # ABC (見づらいためマーカーサイズを大きくしました) ax[3, 2].plot(x, y, marker='$ABC$', markersize=20) ax[3, 2].set_title('$ABC$') fig.tight_layout() # plt.show() plt.savefig('plot.png')
様々なマーカーの設定
その他色々マーカーで遊んでみました。マーカーには透過度を指定するパラメータはありませんが、色指定時にRGBAを設定すれば透過するマーカーも作成できます。
ax.plot(x, y, marker='o', markersize=10, markeredgecolor='r', markerfacecolor=[0.0, 0.0, 0.0, 0.5], markeredgewidth=3)
マーカーの間隔設定
何個飛ばしかでマーカーを表示させたい場合は、markeveryを使用します。
ax.plot(x, y, marker='o', markevery=3)
線の設定
線の種類の変更
linestyleを使うと線の種類を変更できます。ここでは破線に変更してみました。
ax.plot(x, y, marker='o', linestyle='--')
透明度を変更 (線とマーカー)
colorでRGBAもしくはalphaを設定し、markerfacecolorが設定されていない場合、線とマーカー両方に設定が適用されます。
ax.plot(x, y, marker='o', linestyle='--', linewidth=2, color=[1.0, 0.0, 0.0, 0.5])
markerfacecolorでマーカーの色を別で設定すると、線と異なる色・透明度の設定ができるようになります。
ax.plot(x, y, marker='o', markerfacecolor='r', linestyle='--', linewidth=2, color=[1.0, 0.0, 0.0, 0.5])
fmtによるラインとマーカーの設定
plotの線とマーカー、色の指定はfmtという形式で簡略化して行うこともできるそうです。線の太さや透過度などはこれだけでは設定できませんので、一番下の行のように追加で記載する必要があるみたいです。
fmtの書き方は下の順で記号を並べます。fmt = '[marker][line][color]'
fig, ax = plt.subplots(3, 2, figsize=(10, 6)) # マーカー'o'の実践 ax[0, 0].plot(x, y, 'o-') ax[0, 0].set_title('o-') # 点線 ax[0, 1].plot(x, y, '--') ax[0, 1].set_title('--') # 赤線 ax[1, 0].plot(x, y, 'r') ax[1, 0].set_title('r') # マーカー'o'で赤色の点線 ax[1, 1].plot(x, y, 'o--r') ax[1, 1].set_title('o--r') # マーカー'o'で赤色の点線 + 先の太さ2pt ax[2, 0].plot(x, y, 'o--r', linewidth=2) ax[2, 0].set_title('o--r + linewidth') # マーカー'o'で赤色の点線 + マーカーの塗り潰し色が緑 ax[2, 1].plot(x, y, 'o--r', markerfacecolor='g') ax[2, 1].set_title('o--r + markerfacecolor')