Matplotlib - 当其他对象重叠时如何将文本设置在它们下方?

发布于 2024-10-31 05:16:56 字数 499 浏览 0 评论 0原文

使用 matplotlib 时,如何将文本设置在其他对象下方,例如 Rectangles、LineCollections 等?或者更一般地说,matplotlib 如何决定对象彼此重叠时出现的顺序?与网格不同,没有像 Axes.set_textbelow() 这样的函数可供使用,我也用谷歌搜索了这个主题,但没有得到满意的结果。

下面是我用 matplotlib 绘制的股票图表。注意音量部分,我想将音符(白色文本)设置在音量条重叠的位置下方。音符是使用 Axes.text() 绘制的 Text 对象,音量条是使用 Axes.vlines() 绘制的 LineCollection 对象。

股票图表我用 matplotlib 画图

when using matplotlib, how can I set the text to be below other objects, like Rectangles, LineCollections, etc ? Or more generally, how does matplotlib decide the order the objects will appear when they overlap each other? Unlike with grids, there's no function like Axes.set_textbelow() to use, I also googled this subject but got no satisfying result.

Below is the stock chart I draw with matplotlib. Note the volume section, I want to set the notes(white text) to be below the volume bars where they overlap. The notes are Text objects drawn with Axes.text(), the volume bars are LineCollection objects drawn with Axes.vlines().

stock chart I draw with matplotlib

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

似最初 2024-11-07 05:16:56

您可能正在寻找 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()

You are probably looking for 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()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文