Pynote

Python、機械学習、画像処理について

matplotlib - fill_between, fill_betweenx, fill で塗りつぶした図形を作成する。

fill_between

2つの関数の y 軸方向の区間を塗りつぶす。

fig, ax = plt.subplots(figsize=(5, 5))

x = np.linspace(0, 10, 1000)
y1 = np.sin(x)
y2 = np.cos(x)

ax.plot(x, y1)
ax.plot(x, y2)
ax.fill_between(x, y1, y2)


マスクで塗りつぶす範囲を限定する。

fig, ax = plt.subplots(figsize=(5, 5))

x = np.linspace(0, 10, 1000)
y1 = np.sin(x)
y2 = np.cos(x)

ax.plot(x, y1)
ax.plot(x, y2)
ax.fill_between(x, y1, y2, where=x < 5)


fill_betweenx

2つの関数の x 軸方向の区間を塗りつぶす。

fig, ax = plt.subplots(figsize=(5, 5))

y = np.linspace(0, 4 * np.pi, 100)
x1 = np.sin(y)
x2 = np.cos(y)

ax.plot(x1, y)
ax.plot(x2, y)
ax.fill_betweenx(y, x1, x2)


マスクで塗りつぶす範囲を限定する。

fig, ax = plt.subplots(figsize=(5, 5))

y = np.linspace(0, 4 * np.pi, 100)
x1 = np.sin(y)
x2 = np.cos(y)

ax.plot(x1, y)
ax.plot(x2, y)
ax.fill_betweenx(y, x1, x2, where=y < 5)

fill

ax.fill(x, y)
ax.fill(x, y, color)
ax.fill(x, y, x2, y2)
ax.fill(x, y, color1, x2, y2, color2)

ポリゴンの内側を塗りつぶす。

x = np.array([0, 1, 2, 1])
y = np.array([1, 2, 1, 0])

fig, ax = plt.subplots(figsize=(5, 5))
ax.fill(x, y)


x1 = np.array([0, 1, 2, 1])
x2 = x1 + 1
y = np.array([1, 2, 1, 0])

fig, ax = plt.subplots(figsize=(5, 5))
ax.fill(x1, y, x2, y)


色を指定する。

x = np.array([0, 1, 2, 1])
y = np.array([1, 2, 1, 0])

fig, ax = plt.subplots(figsize=(5, 5))
ax.fill(x, y, color='orange')


x1 = np.array([0, 1, 2, 1])
x2 = x1 + 1
y = np.array([1, 2, 1, 0])

fig, ax = plt.subplots(figsize=(5, 5))
ax.fill(x1, y, 'orange', x2, y, 'red')