【Matplotlib】直線グラフの作成
直線
Matplotlib で直線グラフを作成する方法は何通りかあります。たとえば、numpy.arange() で作成した x のデータを直線の式に当てはめます。
# MATPLOTLIB_STRAIGHT_LINE_01
import numpy as np
import matplotlib.pyplot as plt
# 6×4サイズのFigureを作成
fig = plt.figure(figsize=(6, 4))
# FigureにAxesを1つ追加
ax = fig.add_subplot(111)
# 目盛線を表示
ax.grid()
# x軸の範囲を設定
ax.set_xlim([-5, 5])
# -5~5まで1刻みのデータを作成
x = np.arange(-5, 6)
# 直線の式を定義
y = 2*x + 1
# 直線をプロット
ax.plot(x, y, color="blue")
plt.show()
numpy.linspace() を使うと、非整数のデータを作成できます。
# MATPLOTLIB_STRAIGHT_LINE_02
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 4))
ax = fig.add_subplot(111)
ax.grid()
ax.set_xlim([0, 5])
ax.set_ylim([0, 8])
ax.set_xlabel("x", fontsize=14)
ax.set_ylabel("y", fontsize=14)
# 0~5を10分割したデータを作成
x = np.linspace(0, 5, 10)
# 直線の式を定義
y = x + 2
# 直線をプロット
ax.plot(x, y, color="red")
plt.show()
Axes.plot([x0, x1], [y0, y1]) と記述すると、(x0, y0) から (x1, y1) まで直線が引かれます。
# MATPLOTLIB_STRAIGHT_LINE_03
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 4))
ax = fig.add_subplot(111)
ax.grid()
ax.set_xlim([0, 6])
ax.set_ylim([0, 10])
ax.set_xlabel("x", fontsize=14)
ax.set_ylabel("y", fontsize=14)
# (0,4)から(6,9)まで直線を引く
ax.plot([0, 6], [4, 9], color="sienna")
plt.show()
水平線と垂直線
Axes.axhline(a) は Y = a に水平線を引きます。
Axes.axvline(a) は X = a に 垂直線 を引きます。
# MATPLOTLIB_HORIZONTAL_VERTICAL_LINE_01
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 4))
ax = fig.add_subplot(111)
ax.grid()
ax.set_xlim([0, 6])
ax.set_ylim([0, 10])
ax.set_xlabel("x", fontsize=14)
ax.set_ylabel("y", fontsize=14)
# y=5に水平線を引く
ax.axhline(5, ls="-.", color="magenta")
# x=3に垂直線を引く
ax.axvline(3, ls="--", color="navy")
plt.show()
【Matplotlib】折れ線グラフの作成
Axes.plot() にリストや配列を1つだけ渡すと、各要素を Y値とする 折れ線 を描画します。Y値は要素のインデックス値となります。
# MATPLOTLIB_LINE_GRAPH_01
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(6, 4))
ax = fig.add_subplot(111)
ax.grid()
ax.set_xlim([0, 3])
ax.set_ylim([0, 18])
ax.set_xlabel("X", fontsize=14)
ax.set_ylabel("Y", fontsize=14)
# 2,4,8,16をY値とする折れ線を描画
ax.plot([2, 4, 8, 16], color="darkgreen")
plt.show()
第1引数と第2引数に X値と Y値を指定することもできます。
# MATPLOTLIB_LINE_GRAPH_02
fig = plt.figure(figsize=(6, 4))
ax = fig.add_subplot(111)
ax.grid()
ax.set_xlim([0, 12])
ax.set_ylim([0, 10])
ax.set_xlabel("X", fontsize=14)
ax.set_ylabel("Y", fontsize=14)
# X値を設定
x = [0, 3, 5, 9, 12]
# X値を設定
y = [4, 1, 2, 8, 5]
# 折れ線を描画
ax.plot(x, y, color="crimson")
plt.show()
コメントを書く