
matplotlibで折れ線グラフ
折れ線グラフは matplotlib.pyplot.plot
で描画できます。最も基本的なグラフの描画方法でよく使われます。
引数で描画するデータ(配列)を渡すのが基本的な使い方です。引数のデータがプロットされ線でつながれて折れ線グラフになります。
プロットされるデータが多いとなめらかな曲線も描画できます。たとえば2次関数のグラフです。
matplotlib.pyplot.plotの使い方
matplotlib.pyplot.plot(*args, **kwargs)
可変長引数 *args
がプロットするデータです。**kwargs
はスタイルを指定するための引数です。
プロットするデータの渡し方はかなり柔軟です。
引数が1つの場合
引数が1つの場合は、そのデータが縦軸の値としてプロットされます。横軸の値は0からの連番になります。
import numpy as np
from matplotlib import pyplot as plt
# プロットするデータ
data = np.array([1, 3, 4, 2, 6, 7, 5])
# プロットして描画
plt.plot(data)
plt.show()
引数が2つの場合
引数が2つの場合、横軸と縦軸の値の組み合わせとしてプロットされます。配列の要素数が異なるとプロットできないためエラーになります。
1つ目の引数が xdata
2つ目の引数が ydata
です。例えば以下の例では、2次関数(y = x^2)を描画しています。
import numpy as np
from matplotlib import pyplot as plt
# 2次関数: y = x^2 (-10 < x < 10)
x = np.linspace(-10, 10)
y = x**2
# 縦軸横軸の値をプロット
plt.plot(x, y)
plt.show()
引数が3つ以上の場合は複数のグラフを描画
複数の xdata
ydata
を引数に指定することもできます。この場合、複数のグラフがまとめて描画されます。
import numpy as np
from matplotlib import pyplot as plt
# 2次関数: y = x^2
x1 = np.linspace(-5, 5)
y1 = x1**2
# 1次関数: y = x + 3
x2 = np.linspace(-5, 5)
y2 = x2 + 3
# 縦軸横軸の値をプロット
plt.plot(x1, y1, x2, y2)
plt.show()
Line Style の指定
スタイルの設定を引数で指定することが可能です。
プロットするデータだけを渡してグラフを描画すると、グラフのスタイルはデフォルトの設定が適用されます。スタイルの指定はかなり詳細に設定できます。40種類の引数から設定可能です。
数が多いのでいくつかピックアップしてまとめます。
引数 | 説明 |
---|---|
alpha | グラフの透過度を指定します。(0.0[透明]から1.0[不透明]) |
color または c | 線の色を指定します。 |
drawstyle | グラフの書き方を設定します。(‘default’, ‘steps’, ‘steps-pre’, ‘steps-mid’, ‘steps-post’) |
fillstyle | マーカーの塗りつぶし色を指定します。(‘full’, ‘left’, ‘right’, ‘bottom’, ‘top’, ‘none’) |
label | ラベルを文字列で指定します。 |
linestyle または ls | 線のスタイルを指定します。[‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | ‘-‘ | ‘–‘ | ‘-.’ | ‘:’ | ‘None’ | ‘ ‘ | ”] |
linewidth または lw | 線の太さを指定します。 |
marker | マーカーの種類を指定します。 |
markeredgecolor または mec | マーカーの枠線線の色を指定します。 |
markeredgewidth または mew | マーカーの枠線線の太さを指定します。 |
markerfacecolor または mfc | マーカーの塗りつぶし色を指定します。 |
markersize または ms |
線の色を指定
color
で線の色を指定できます。省略して c
でも指定できます。指定できる値と色は以下の通りです。
指定文字 | 色 |
---|---|
‘b’ | 青(blue) |
‘g’ | 緑(green) |
‘r’ | 赤(red) |
‘c’ | シアン(cyan) |
‘m’ | マゼンタ(magenta) |
‘y’ | 黄色(yellow) |
‘k’ | 黒 |
‘w’ | 白(white) |
import numpy as np
from matplotlib import pyplot as plt
x = np.linspace(1, 10)
y = x**2
plt.plot(x, y, color="r")
plt.plot(x, y / 2, color="g")
plt.plot(x, y / 3, c="k")
plt.show()
グラフのスタイルを指定
drawstyle
でグラフのスタイルを指定できます。’default’, ‘steps’, ‘steps-pre’, ‘steps-mid’, ‘steps-post’ から指定します。
defaultだと点と点の間を直線で結びます。要は普通のグラフですね。
steps*を指定すると階段関数のグラフとなります。pre mid postの違いは、どのタイミングで段差となるかです。
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(10)
y = 2*x
plt.plot(x, y, drawstyle="default") # 普通の直線グラフ
plt.plot(x, y*3, drawstyle="steps") # 階段状のグラフ
plt.show()
マーカーのスタイルを指定
プロットされた点をマーカーで表示することができます。
マーカーを表示
marker
でマーカーを表示させることができます。指定する値はマーカーの種類です。
指定できる種類は以下のページにあまとめられています。
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(10)
y = 2*x
plt.plot(x, y, marker="o")
plt.plot(x, y*3, marker="x")
plt.show()
マーカーの大きさや色、塗りつぶし
markeredgecolor
でマーカーの枠線の色を指定できます。markeredgewidth
でマーカーの枠線の太さを指定します。markerfacecolor
でマーカーの塗りつぶし色を指定します。markersize
でマーカーの大きさを指定します。
まとめて設定すると以下のような感じです。
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(10)
y = 2*x
plt.plot(x, y,
marker="o",
markeredgecolor="r", # 枠線は赤
markeredgewidth=5, # 枠線の太さ
markerfacecolor="w", # マーカーの色
markersize=15)
plt.show()
ラベルを表示
label
でラベルを表示できます。ラベルを表示させるには引数の指定だけでなく、legend()
を事項する必要があります。
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(10)
y = 2*x
plt.plot(x, y, label="test label")
plt.legend()
plt.show()