绘制文本时matplotlib
with text()
,然后交互平移图像,生成的绘制文本不会剪切到数据窗口。这与使用绘制数据或绘制文本的方式相反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()
绘制的“文本”不是。
我不确定此行为是功能还是错误,但肯定看起来是后者,因为此文本会干扰轴标签等。使用 1.2.1 与 TkAgg 后端。
另一个问题是如何正确剪辑所有文本,使其不超出数据窗口,而不仅仅是参考坐标这样做时。
Thanks!
此行为可以由 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 http://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes.text。支持和反对将文本剪切到数据区域都有争议。
有一个bug https://github.com/matplotlib/matplotlib/pull/1885在 mpl 中使txt.set_clip_on(True)
不按预期工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)