如何在背景中放置matplotlib艺术家以覆盖顶部的情节?

时间:2013-07-23 19:36:43

标签: matplotlib

我知道我遗漏了关于matplotlib如何组织数字和情节的非常基本的东西,但我搜索了文档但没有结果。我已经将我的问题缩小到一些简单的问题,希望能帮助我更好地理解matplotlib。

给出以下代码:

x_coords = [1,2,3]
y_coords = [2,3,4]
labels = ['A','B','C']
plt.scatter(x_coords, y_coords, marker = 'o')
for l, x, y in zip(labels, x_coords, y_coords):
    plt.annotate(l, xy=(x,y), xytext=(-10,5), textcoords='offset points')

circle = plt.Circle((2,3), 1.5, color='w', ec='k')
fig = plt.gcf()
fig.gca().add_artist(circle)

plt.show()

圆圈绘制在标记和绘制点标签之间的图层上。如何控制绘制这些元素的图层?

以下是可视参考的绘制图像:

simple plot

1 个答案:

答案 0 :(得分:5)

首先,代码中的circle不是Figure,而是Artist,更具体地说是Patch。在matplotlib中,Figure是包含其他元素的顶级Artist,因此您的标题有点误导。

其次,您可以通过指定其zorder kwarg将圆圈置于其他艺术家的下方:

circle = plt.Circle((2,3), 1.5, color='w', ec='k', zorder=0)

最低zorder的艺术家在底层绘制,而最高的艺术家在顶部绘制。

enter image description here