当前位置:  开发笔记 > 编程语言 > 正文

在图的顶层绘制圆

如何解决《在图的顶层绘制圆》经验,为你挑选了1个好方法。

我正在制作一个图,试图在组合色图和轮廓图的顶部绘制一个圆。圆一直在轮廓下方而不是轮廓上方绘制(请参见下图)。我尝试重新排序我称为imshow,轮廓和圆的方式,以查看是否可以将圆显示在顶部,但是我没有任何运气。有没有办法强迫Circle处于图表的最高级别?谢谢你的帮助!



1> tmdavison..:

使用zorderkwarg。这样可以控制哪些元素相互重叠。因此,在这种情况下,您想增加zorder圆的。您可能需要尝试找到一个zorder可以提供所需结果的,但是规则是,较高的zorder对象应出现在较低的zorder对象之上。

它很难确切地知道,没有任何代码的,但假设你已经使用pcolormeshcontour并且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,红色圆圈位于轮廓线上方。

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有