python - matplotlib 文本未被剪裁

标签 python matplotlib

当使用 text()matplotlib 中绘制文本,然后以交互方式平移图像时,生成的绘制文本不会剪切到数据窗口。这与使用 annotate() 绘制数据或绘制文本的工作方式相反,并且没有直观意义,因为 text() 使用数据窗口坐标。

import matplotlib.pyplot as plt

plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111)

ax.text(0.5, 0.2, 'text')
ax.annotate('anno', (0.5, 0.3))

plt.draw()

以交互方式将文本平移到数据窗口的各个方向。当引用点穿过数据窗口边界时,annotate() 绘制的“anno”会被剪裁,而 text() 绘制的“text”则不会。

我不确定这种行为是特性还是错误,但肯定看起来像后者,因为此文本会干扰轴标签等。将 1.2.1 与 TkAgg 后端一起使用。

另一个问题是如何正确地裁剪所有文本,使其不超出数据窗口,而不仅仅是在引用坐标超出数据窗口的情况下。

谢谢!

最佳答案

此行为可以由 kwarg clip_on 控制:

import matplotlib.pyplot as plt

plt.ion()
fig = plt.figure()
ax = fig.add_subplot(111)

txt = ax.text(0.5, 0.2, 'text')
anno = ax.annotate('anno', (0.5, 0.3))
txt_clip = ax.text(0.5, 0.5, 'text-clip', clip_on=True)

plt.draw()

axes.text doc .支持和反对将文本裁剪到数据区域的观点各有不同。

有一个bug在 mpl 中,这使得 txt.set_clip_on(True) 无法按预期工作。

关于python - matplotlib 文本未被剪裁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15843340/

相关文章:

Python matplotlib barbs/quiver 将颜色映射到不同的值集

python - matplotlib:设置 xticklabels 返回一些 "help"输出

python - 使用 matplotlib 制作 3D 动画,连接点以创建移动简笔画

python - Django psycopg2.InterfaceError : connection already closed

python - aiohttp 和 aiohttp_jinja2 响应错误

python - Shapely 中 MultiLineString 对象中 LineString 的顺序

python - 使用 Pandas 和 Matplotlib 绘制 Candlestick_OHLC 一分钟柱线图

python - 学习 Python 拆分和合并?

python - python(django)请求究竟是如何发生的?它必须重新解析所有代码库吗?

python - 使用 Python 在 matplotlib 中不剪裁错误栏