我发现当数字保存为pdf时,matplotlib中的annotate函数将数字1偏离中心。所有其他数字似乎没问题。例如,
import matplotlib.pylab as plt
fig = plt.figure(figsize = (5,5))
ax = plt.subplot(111)
ax.plot([0,1], [0,1])
txts = ['1', '2', '3']
y_coords = [0.9, 0.8, 0.7]
for txt, y_coord in zip(txts, y_coords):
ax.annotate(txt, xy = (0.25, y_coord), \
size=36, va='center', ha='center', fontname = 'Helvetica', \
bbox=dict(boxstyle='square', fc = 'w'))
plt.savefig('Test.pdf', bbox_inches = 'tight', pad_inches = 0)
plt.savefig('Test.jpg', bbox_inches = 'tight', pad_inches = 0)
生成一个类似于
的pdf文件
和一个看起来像这样的jpg文件
在pdf中,1不在矩形的中心,但是2和3在它们各自的矩形的中心。在jpg中,所有三个数字都在它们各自的矩形的中心。如果我正在创建光栅化图像,我会对jpg感到满意,但我真的想要一个pdf输出。
这是一个错误吗?我做错了吗?
我在Mac OS X 10.8.5下的Python 2.7.3上使用Matplotlib 1.2.1