使用matplotlib时,如何将文本设置为低于其他对象,如Rectangles,LineCollections等?或者更一般地说,matplotlib如何决定对象在彼此重叠时的显示顺序?与网格不同,没有像Axes.set_textbelow()这样的函数可供使用,我也搜索了这个主题,但没有得到令人满意的结果。
下面是我用matplotlib绘制的股票图表。注意音量部分,我想将音符(白色文本)设置在它们重叠的音量条下方。注释是使用Axes.text()绘制的Text对象,音量条是使用Axes.vlines()绘制的LineCollection对象。
答案 0 :(得分:3)
你可能正在寻找zorder:
from pylab import *
fig = figure(1)
fig.clf()
ax = subplot(111)
rect = matplotlib.patches.Rectangle((0.2,0.2), 0.3, 0.3, fc = '0.5', ec = '0.0')
ax.add_patch(rect)
ax.text(.4, .4, "Help me, there is a rectangle stuck under me!")
fig = figure(2)
fig.clf()
ax = subplot(111)
rect = matplotlib.patches.Rectangle((0.2,0.2), 0.3, 0.3, fc = '0.5', ec = '0.0')
ax.add_patch(rect)
ax.text(.4, .4, "Help me, I'm stuck under a rectangle!", zorder = -1)
show()