我正在制作一个图,试图在组合色图和轮廓图的顶部绘制一个圆。圆一直在轮廓下方而不是轮廓上方绘制(请参见下图)。我尝试重新排序如何调用显示,轮廓和圆,以查看是否可以将圆显示在顶部,但是我没有任何运气。有没有一种方法可以迫使Circle处于图表的最高级别?谢谢你的帮助!
最佳答案
使用 zorder
kwarg。这样可以控制哪些元素相互重叠。因此,在这种情况下,您想增加圆的zorder
。您可能需要尝试找到一个zorder
,它可以为您提供所需的结果,但是规则是,较高的zorder
对象出现在较低的zorder
对象的顶部。
完全没有代码就很难知道,但是假设您使用了pcolormesh
,contour
和Circle
补丁,此示例显示了不设置zorder
(白色圆圈)和设置zorder=10
(红色圆圈)的效果。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
# Fake data
x = np.arange(100)
y = np.arange(100)
X, Y = np.meshgrid(x, y)
z = X**0.5 * Y**0.5
fig, ax = plt.subplots(1)
ax.set_aspect('equal')
ax.pcolormesh(X, Y, z, cmap='viridis')
ax.contour(X, Y, z, colors='k', linewidths=3)
circ1 = Circle((65, 65), 30, facecolor='None', edgecolor='w', lw=5)
circ2 = Circle((35, 35), 30, facecolor='None', edgecolor='r', lw=5, zorder=10)
ax.add_patch(circ1)
ax.add_patch(circ2)
plt.show()
请注意,白色圆圈位于黑色轮廓线下方,但是通过将
zorder
增加到10,红色圆圈位于轮廓线上方。关于python - 在图形的最高层上绘制圆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41638229/