如何解决使用矩形顶部的箭袋箭头中的不同 alpha
我有一个用 matplotlib 绘制的矩形,其 alpha=0.8 。我可以在其上绘制具有不同 alpha 的标记,但是当我尝试在 quiver 的箭头上设置 alpha 参数时,它似乎没有改变。我想知道是否有办法在不改变矩形透明度的情况下为箭头设置更大的透明度。
import matplotlib.pyplot as plt
figure=plt.figure(figsize=(10,8))
ax=plt.gca()
plt.xticks(np.arange(-20,20,1))
plt.yticks(np.arange(-20,1))
rect=plt.Rectangle((1,1),10,facecolor='#32CD32',alpha=0.8)
ax.plot(2,2,marker='o',alpha=1,color='red')
ax.quiver( 2,color='black',scale_units='inches',scale=10,width=0.0015,headlength=5,headwidth=3,alpha=1)
ax.add_patch(rect)
plt.axis('off')
plt.show()
这就是我得到的情节。我希望箭头是深蓝色而不改变上面绿色的 alpha。
解决方法
quiver alpha 按预期工作。问题在于您正在绘制的对象的 zorder
。矩形被绘制在箭头上方但在红点下方:
import numpy as np # v 1.19.2
import matplotlib.pyplot as plt # v 3.3.2
figure=plt.figure(figsize=(6,4))
ax=plt.gca()
plt.xticks(np.arange(-20,20,1))
plt.yticks(np.arange(-20,1))
rect=plt.Rectangle((1,1),10,facecolor='#32CD32',alpha=0.8)
ax.plot(2,2,marker='o',alpha=1,color='red')
ax.quiver( 2,color='black',scale_units='inches',scale=10,width=0.015,headlength=5,headwidth=3,alpha=1)
ax.add_patch(rect)
plt.axis('off')
plt.show()
这可以通过在每个对象中设置 zorder
参数来解决,以便在矩形上绘制箭头:
figure=plt.figure(figsize=(6,alpha=0.8,zorder=1)
ax.plot(2,zorder=2)
ax.add_patch(rect)
plt.axis('off')
plt.show()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。