matplotlib面向对象接口删除axvspan报错
我用matplotlib面向对象接口删除指定的axvspan时会报错:
AttributeError: ‘Axes’ object has no attribute ‘delaxes’
但是我用matplotlib.pyplot就可以正常删除指定的axvspan.
可以帮忙看下matplotlib面向对象接口怎么删除指定的axvspan
#面向对象接口删除指定的axvspan报错
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y = [10, 5, 8, 3, 4, 6, 9, 3, 2, 4]
ax.plot(x, y)
a = ax.axvspan(0.8, 1.2, facecolor='g', alpha=0.5)
b = ax.axvspan(2.8, 3.2, facecolor='y', alpha=0.5)
c = ax.axvspan(4.8, 5.2, facecolor='r', alpha=0.5)
d = ax.axvspan(6.8, 7.2, facecolor='b', alpha=0.5)
ax.delaxes(a)
ax.delaxes(c)
plt.show()
#matplotlib.pyplot可以正常删除指定的axvspan
import matplotlib.pyplot as plt
a = plt.axvspan(0.8, 1.2, facecolor='g', alpha=0.5)
b = plt.axvspan(2.8, 3.2, facecolor='y', alpha=0.5)
c = plt.axvspan(4.8, 5.2, facecolor='r', alpha=0.5)
d = plt.axvspan(6.8, 7.2, facecolor='b', alpha=0.5)
plt.delaxes(a)
plt.delaxes(c)
plt.show()
在Matplotlib的面向对象接口中,要删除指定的
axvspan
,你应该使用remove()
方法而不是delaxes()
方法。delaxes()
方法用于删除整个子图,而不是特定的axvspan
。以下是使用面向对象接口删除指定的
axvspan
的正确示例代码:在这里,我们使用
remove()
方法从ax
对象中删除指定的axvspan
。然后,通过调用plt.show()
来显示图形。请注意,
remove()
方法是用于从Axes
对象中删除艺术家对象的通用方法,可用于删除不同类型的艺术家对象,包括axvspan
、axhspan
、Line2D
等。