我通过设置:
在matplotlib中使用Myriad Pro字体import matplotlib as mpl
mpl.rc('font', **{'family' : 'sans-serif', 'sans-serif' : ['Myriad Pro']})
mpl.rcParams['pdf.fonttype'] = 42
使用matplotlib 1.5,这对我来说很好。 我最近升级到matplotlib 2.0.0,从那时起我遇到以下问题: 将fontsize更改为smalles值(如fontsize = 2.0)时, 所有其他字体(轴标签和刻度标签)受到影响 inter characterspacing搞砸了,因此所有文本元素都会重叠。
下面是一个最小的例子,它为我产生了错误:
import matplotlib as mpl
from matplotlib import pyplot as plt
from matplotlib import rc
if __name__ == '__main__':
f, ax1 = plt.subplots(1)
# select custom font
mpl.rc('font', **{'family' : 'sans-serif', 'sans-serif' : ['Myriad Pro']})
mpl.rcParams['pdf.fonttype'] = 42
# plot data
xValues = [1.0, 2.0]
yValues = [2.0, 3.0]
ax1.plot(xValues, yValues)
# add labels
plt.title('my title', fontsize = 2.0)
ax1.set_xlabel('x label')
ax1.set_ylabel('y label')
# save and show figure
f.savefig('minimalExample.pdf')
通过调用我在交互式版本中没有此问题 在
plt.show()
如果我将输出保存为.png文件而不是.pdf文件,我也看不到这种行为。
答案 0 :(得分:0)
这似乎已经在这里得到了解决: https://github.com/matplotlib/matplotlib/issues/7937 并且显然是所有42型pdf字体的问题。