我正在一个ipython笔记本上创建一个带有一些文本的图形(这里的例子是:一个侧面有一些文本的sin曲线)绘图和文本以内联方式显示在我的笔记本中,但是当我保存图形时,我只看到绘图而没有看到文本我已经用这个示例代码重现了这个问题:

import numpy as np
import matplotlib.pyplot as plt

fig,ax = plt.subplots(1)
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
ax.plot(x, y)
ax.text(8,0.9,'Some Text Here',multialignment='left', linespacing=2.)
plt.savefig('sin.pdf')

如何查看保存的PDF中的文本?

最佳答案

Jupyter笔记本中显示的数字是保存的PNG图像。它们与bbox_inches="tight"选项一起保存。
为了生成与笔记本中的png完全相同的pdf,还需要使用此选项。

plt.savefig('sin.pdf', bbox_inches="tight")

原因是坐标(8,0.9)在图外。因此文本不会出现在保存的版本中(也不会出现在交互式图形中)选项bbox_inches="tight"扩展或缩小保存的范围以包含画布的所有元素使用此选项确实有助于轻松地包含绘图之外的元素,而不必关心图形大小、边距和坐标。
最后一点:您要在数据坐标中指定文本的位置。这通常是不需要的,因为它使文本的位置依赖于轴中显示的数据。相反,在坐标轴中指定它是有意义的,
ax.text(1.1, .9, 'Some Text Here', va="top", transform=ax.transAxes)

使其始终位于相对于轴的位置(1.1,.9)

10-06 05:23
查看更多