如果包含LaTex代码,Matplotlib不能保存eps格式数字。(不能隐式转换'字节'对象为str)

时间:2016-11-25 08:19:46

标签: python python-3.x matplotlib

以下是我的代码:

mpl.rcParams.update({'font.size': 18, 'font.weight': 'bold'})
mpl.rc('text', usetex=True)
plt.figure(figsize=(8, 7))

some data process
plot the data use pyplot.plot(x, y)

plt.legend(handles=[legend1,legend2,legend3,legend4], loc=8, numpoints=1)
plt.xlabel(r'$k_{s}$')
plt.ylabel(r'$P(k_{s})$')
plt.xlim(0.95, 100)
plt.tight_layout()
plt.savefig('fig3.eps', div=300, format='eps')

上面的代码会引发 TypeError:无法转换'字节'调用savefig方法时,对象为str 。预期的数字可以在我的Jupyter笔记本中显示,但并不能真正保存eps文件。但是,其他格式如png,jpeg和pdf似乎也有效。

我尝试删除mpl.rc('text', usetex=True)并删除所有LaTex代码,然后异常消失。

我的matplotlib版本是:1.5.1,python版本是3.5

我无法在google或matplotlib官方文档中找到任何有用的信息。请帮帮忙。谢谢你们所有人!

更新 我写了一个简单的例子,事情没有改变。

%matplotlib inline

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams.update({'font.size': 18, 'font.weight': 'bold'})
mpl.rc('text', usetex=True)

x = np.arange(10)
y = x

plt.plot(x, y)
plt.xlabel(r'$k_{s}$', fontweight='bold')
plt.ylabel(r'$P(k_{s})$', fontweight='bold')

plt.savefig('figtest.eps',format='eps', dpi=300)

预期结果显示在我的jupyter笔记本中,但它没有将无花果保存到我的磁盘上。

0 个答案:

没有答案