Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Python 3.3+;Matplotlib 1.2.0:pdf导出生成';str';不支持缓冲区接口“;错误_Macos_Fonts_Python 3.x_Matplotlib_Adobe - Fatal编程技术网

Macos Python 3.3+;Matplotlib 1.2.0:pdf导出生成';str';不支持缓冲区接口“;错误

Macos Python 3.3+;Matplotlib 1.2.0:pdf导出生成';str';不支持缓冲区接口“;错误,macos,fonts,python-3.x,matplotlib,adobe,Macos,Fonts,Python 3.x,Matplotlib,Adobe,我刚开始从matlab/mathematica迁移到python进行技术计算。我一直在学习如何使用matplotlib.pyplot包,希望有人能帮助我使用字体。我最终需要将图形输出保存为pdf或eps文件,以便在Adobe Illustrator中打开。最初,我的pdf和eps输出包含轮廓字体(而不是保留文本信息的嵌入式字体)。接下来,我得到了以下代码: import matplotlib as mpl import matplotlib.pyplot as plt # if I omit t

我刚开始从matlab/mathematica迁移到python进行技术计算。我一直在学习如何使用matplotlib.pyplot包,希望有人能帮助我使用字体。我最终需要将图形输出保存为pdf或eps文件,以便在Adobe Illustrator中打开。最初,我的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时,最后一行生成下面复制的错误。谁能给我指出正确的方向吗?我正在运行Python 3.3和matplotlib 1.2.0,使用Mac OS 10.6上的Pyzo发行版

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
回溯(最近一次呼叫最后一次):
文件“”,第11行,plt.savefig(“myfig.pdf”)
savefig中的文件“/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/pyplot.py”,第472行
返回图savefig(*args,**kwargs)
savefig中的文件“/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/figure.py”,第1364行
self.canvas.print_图(*args,**kwargs)
文件“/Applications/pyzo2013b/lib/python3.3/pyzo packages/matplotlib/backends/backend_qt4agg.py”,第161行,如图所示
图canvasagg.打印图(self,*args,**kwargs)
文件“/Applications/pyzo2013b/lib/python3.3/pyzo packages/matplotlib/backend_base.py”,第2093行,如图所示
**kwargs)
文件“/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backend_-bases.py”,第1845行,印刷版pdf
返回pdf.print_pdf(*args,**kwargs)
文件“/Applications/pyzo2013b/lib/python3.3/pyzo packages/matplotlib/backends/backend_pdf.py”,第2307行,印刷版_pdf
file.close()文件
文件“/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_pdf.py”,第507行,关闭
self.writeFonts()
文件“/Applications/pyzo2013b/lib/python3.3/pyzo packages/matplotlib/backends/backend_pdf.py”,第607行,以书面形式
fonts[Fx]=self.embeddettf(realpath,chars[1])
embeddettf中的文件“/Applications/pyzo2013b/lib/python3.3/pyzo packages/matplotlib/backends/backend_pdf.py”,第1054行
返回embeddettftype42(字体、字符、描述符)
embeddettftype42中的文件“/Applications/pyzo2013b/lib/python3.3/pyzo packages/matplotlib/backends/backend_pdf.py”,第987行
self.currentstream.write(unicode\u cmap)
文件“/Applications/pyzo2013b/lib/python3.3/pyzo-packages/matplotlib/backends/backend_pdf.py”,第379行,以书面形式
压缩=自压缩对象压缩(数据)
TypeError:“str”不支持缓冲区接口

这是
matplotlib
中的一个错误,在这里修复:

这是
matplotlib
中的一个错误,在这里修复:

你能用2.x测试一下吗?您可以尝试使用github的当前主分支吗?我可以在Linux上用python 3.2.3确认相同的错误。不过,它可以与python 2.7.3配合使用。@JanHlavacek能否请你们中的一位在github上打开一个问题(如果还没有问题的话)。@JanHlavacek--感谢您的参与。我在白天的工作中暂时失踪了!你能用2.x测试一下吗?您可以尝试使用github的当前主分支吗?我可以在Linux上用python 3.2.3确认相同的错误。不过,它可以与python 2.7.3配合使用。@JanHlavacek能否请你们中的一位在github上打开一个问题(如果还没有问题的话)。@JanHlavacek--感谢您的参与。我在白天的工作中暂时失踪了!只是确认一下:修复程序解决了这个问题,并在MacOSX上用Python3.3.0进行了测试,在Linux上用Python3.2.3进行了测试(引用GitHub的评论)。谢谢大家!只是确认一下:修复程序解决了这个问题,并在MacOSX上用Python3.3.0进行了测试,在Linux上用Python3.2.3进行了测试(引用GitHub的评论)。谢谢大家!