matplotlib庫之patch
patch適用于繪制各種形狀相關(guān)的圖形
通過設(shè)置facecolor, edgecolor, 以及color參數(shù)等實現(xiàn)不同的顏色填充
from matplotlib import pyplot as plt
import numpy as np
from matplotlib.patches import Ellipse
# kw設(shè)置橫縱坐標(biāo)刻度相同
fig, ax = plt.subplots(1, 2, subplot_kw={"aspect": "equal"})
angle = np.linspace(0, 135, 4)
ellipse = [Ellipse((2, 2), 4, 2, a) for a in angle]
# sub[121]
ax[0].axis([-1, 5, -1, 5])
for E in ellipse:
ax[0].add_patch(E)
E.set_edgecolor("black")
E.set_facecolor("w")
E.set_alpha(0.4)
# sub[122]
ellipse = [Ellipse((2, 2), 4, 2, a) for a in angle]
ax[1].axis([-1, 5, -1, 5])
for elle in ellipse:
ax[1].add_patch(elle)
elle.set_alpha(0.4)
elle.set_color("b")
plt.show()

隨機生成x,y在10以內(nèi)的橢圓,并且長和高度隨機在(0, 1), 角度隨機
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.patches import Ellipse
fig, ax = plt.subplots(subplot_kw={"aspect": "equal"})
num = [i for i in range(10)] # 需要生成10個橢圓
# 橢圓
ellipse = [Ellipse(xy=np.random.rand(2)*10, width=np.random.rand(1),
height=np.random.rand(1), angle=np.random.rand(1)*360) for i in num]
for elle in ellipse:
ax.add_patch(elle)
elle.set_color("b")
elle.set_alpha(0.4)
ax.axis([-1, 11, -1, 11])
plt.show()
