テクニカル コンピューティングのために、matlab/mathematica から python への移行を開始しました。私は matplotlib.pyplot パッケージの使用方法を学んでおり、誰かがフォントを手伝ってくれることを望んでいました。最終的には、グラフィック出力を Adobe Illustrator で開くことができる pdf または eps ファイルとして保存する必要があります。最初、私の pdf および eps 出力には、(テキスト情報を保持する埋め込みフォントではなく) アウトライン フォントが含まれていました。この役立つアドバイスに従って、次のコードになりました。
import matplotlib as mpl
import matplotlib.pyplot as plt
# if I omit the next line, the plot saves without error, but with outlined fonts
mpl.rcParams['pdf.fonttype'] = 42 #set Truetype fonts for Adobe
plt.plot(range(5),range(5),'r-')
plt.ylabel('y')
plt.xlabel('x')
plt.title('title')
plt.show()
plt.savefig("myfig.pdf")
ただし、rcParams['pdf.fonttype']=42 を設定すると、最終行で以下にコピーされたエラーが生成されます。誰かが私を正しい方向に向けることができますか? Mac OS 10.6 で Pyzo ディストリビューションを使用して、Python 3.3 と matplotlib 1.2.0 を実行しています。
Traceback (most recent call last):
File "<tmp 1>", line 11, in <module> plt.savefig("myfig.pdf")
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/pyplot.py", line 472, in savefig
return fig.savefig(*args, **kwargs)
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/figure.py", line 1364, in savefig
self.canvas.print_figure(*args, **kwargs)
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_qt4agg.py", line 161, in print_figure
FigureCanvasAgg.print_figure(self, *args, **kwargs)
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backend_bases.py", line 2093, in print_figure
**kwargs)
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backend_bases.py", line 1845, in print_pdf
return pdf.print_pdf(*args, **kwargs)
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_pdf.py", line 2307, in print_pdf
file.close()
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_pdf.py", line 507, in close
self.writeFonts()
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_pdf.py", line 607, in writeFonts
fonts[Fx] = self.embedTTF(realpath, chars[1])
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_pdf.py", line 1054, in embedTTF
return embedTTFType42(font, characters, descriptor)
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_pdf.py", line 987, in embedTTFType42
self.currentstream.write(unicode_cmap)
File "/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_pdf.py", line 379, in write
compressed = self.compressobj.compress(data)
TypeError: 'str' does not support the buffer interface