在矩形顶部使用箭袋的箭头中的不同 alpha
Different alpha in arrows using quiver on top of rectangle
我用 alpha=0.8 的 matplotlib 绘制了一个矩形。我可以在上面绘制一个带有不同 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,20,1))
rect=plt.Rectangle((1,1),10,10,facecolor='#32CD32',alpha=0.8)
ax.plot(2,2,marker='o',alpha=1,color='red')
ax.quiver( 2,2, 2,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,20,1))
rect=plt.Rectangle((1,1),10,10,facecolor='#32CD32',alpha=0.8)
ax.plot(2,2,marker='o',alpha=1,color='red')
ax.quiver( 2,2, 20,20, 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,4))
ax=plt.gca()
plt.xticks(np.arange(-20,20,1))
plt.yticks(np.arange(-20,20,1))
rect=plt.Rectangle((1,1),10,10,facecolor='#32CD32',alpha=0.8,zorder=1)
ax.plot(2,2,marker='o',alpha=1,color='red')
ax.quiver( 2,2, 20,20, color='black', scale_units='inches', scale=10, width=0.015,
headlength=5,headwidth=3,alpha=1,zorder=2)
ax.add_patch(rect)
plt.axis('off')
plt.show()
我用 alpha=0.8 的 matplotlib 绘制了一个矩形。我可以在上面绘制一个带有不同 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,20,1))
rect=plt.Rectangle((1,1),10,10,facecolor='#32CD32',alpha=0.8)
ax.plot(2,2,marker='o',alpha=1,color='red')
ax.quiver( 2,2, 2,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,20,1))
rect=plt.Rectangle((1,1),10,10,facecolor='#32CD32',alpha=0.8)
ax.plot(2,2,marker='o',alpha=1,color='red')
ax.quiver( 2,2, 20,20, 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,4))
ax=plt.gca()
plt.xticks(np.arange(-20,20,1))
plt.yticks(np.arange(-20,20,1))
rect=plt.Rectangle((1,1),10,10,facecolor='#32CD32',alpha=0.8,zorder=1)
ax.plot(2,2,marker='o',alpha=1,color='red')
ax.quiver( 2,2, 20,20, color='black', scale_units='inches', scale=10, width=0.015,
headlength=5,headwidth=3,alpha=1,zorder=2)
ax.add_patch(rect)
plt.axis('off')
plt.show()