Axhspan总是在人物面前

时间:2015-08-05 14:45:02

标签: matplotlib background

我试图制作一个散乱点的情节。 我想在(xy)计划中显示特定区域。 我已经看过如何使用axhspan和axvspan,但它产生的彩色区域总是隐藏我的观点。 我的意思是,我可以看到我的点将alpha设置为不同于1的值,但是它们的颜色会被axhspan颜色改变。

有没有办法把这个区域放在图的背景中?

2 个答案:

答案 0 :(得分:3)

如果不确切地知道自己在做什么,很难确定(发布minimal, complete, verifiable example总是一个好主意!),但它确实如此。可能你想使用zorder将你正在绘制的内容带到顶部。较高的zorder朝向前方(http://matplotlib.org/examples/pylab_examples/zorder_demo.html)。

因此,例如,如果您想要在前面显示散点图,则应添加zorder参数,如下所示:

plt.scatter(X, Y, zorder = 10)

答案 1 :(得分:2)

使用zorder关键字。使你想要的东西的zorder高于你想要的背景。

import matplotlib.pyplot as plt
import numpy as np

x=np.random.rand(100)
y=np.random.rand(100)

fig,(ax1,ax2)=plt.subplots(1,2)

# zorder of the points is higher, they will be on top of the axhspan
ax1.axhspan(0.25, 0.75, facecolor='r',zorder=1)
ax1.plot(x,y,'ko',zorder=2)

# zorder of the axhspan is higher, so it will be on top of the points
ax2.axhspan(0.25, 0.75, facecolor='b',zorder=2)
ax2.plot(x,y,'ko',zorder=1)

fig.savefig('zorder.png')

enter image description here