使用matplotlib
在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()
绘制的'文本'则没有。{/ p>
我不确定这种行为是一个功能还是一个bug,但肯定看起来像后者,因为这个文本干扰了轴标签等。使用1.2.1与TkAgg后端。
另一个问题是如何正确地将所有文本剪辑到数据窗口之外,而不仅仅是在参考坐标之外。
谢谢!
答案 0 :(得分:6)
此行为可以由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。赞成和反对将文本剪切到数据区域都存在争议。
mpl中有一个bug使txt.set_clip_on(True)
无效。