From: David <ld...@gm...> - 2010-03-16 21:06:16
|
Dear Michael, thanks for your input. So far, though, no luck. I have deleted "SimHei" in matplotlibrc, and I can then continue generating CJK characters. The png is generated, the eps is not. Thus, no change. The error output is also the same: RuntimeError: Face has no glyph names WARNING: Failure executing file: <dea.py> I have tried import matplotlib matplotlib.use('GtkCairo') as you suggested, but they had no effect whatsoever. Even the error output is the same. I attach my code, maybe that gives a hint. Note: in line 327 and 328 of the matplotlibrc I have added ps.fonttype=42 pdf.fonttype=42 whereas I have uncommented pdf.fonttype : 3 Any ideas? I would most welcome any hint and suggestion! Many thanks, David On 17/03/10 04:15, Michael Droettboom wrote: > The font you are using (SimHei) does not have any glyph names -- these > are used in the Postscript backend to refer to glyphs outside of the > ASCII range. More specifically, it looks like it has at least one > invalid glyph name (glyph names can only contain ASCII characters) -- > loading it in FontForge complains about this. I haven't come across such > a font before, but maybe that's common in CJK fonts. I don't know. I'm > looking through the spec to find a way that glyphs can be referenced > without a name, but I'm not finding one. Note, the PDF backend has the > same issue. > > Do you have the same problem if you remove "SimHei" from the > font.sans-serif list and thus use "Adobe Song Std" instead? (I was able > to find an online download of SimHei to test with, but not Adobe Song Std). > > As a workaround, the Cairo backend seems to handle this font just fine. > You can add > > import matplotlib > matplotlib.use('GtkCairo') > > to the top of your script. > > Mike > > David wrote: >> Hello everybody, >> >> I have a final problem with my graph. As a last step I produce an >> *.eps file that I use in conjunction with LaTeX. >> >> Here is the last part of my code: >> >> # plt.title('Title') >> xlab = plt.xlabel(u'输入 1') >> #xlab.set_position((0.2, 0.1)) >> ylab = plt.ylabel(u'输入 2') >> plt.grid(True) >> plt.subplots_adjust(bottom=0.2) >> plt.show() >> plt.savefig('dea.eps') >> >> >> plt.show() produces the correct output, >> >> but >> >> plt.savefig('dea.eps') produces an error (the error message is attached). >> >> The error is clearly linked to the Chinese, as it runs through if I >> take the Chinese out of the code. >> Also, plt.savefig('dea.png') works fine. >> >> Could anyone indicate where I would have to look for the mistake? The >> matplotlibrc should be fine, but I am not sure. >> >> Your help would be greatly appreciated! >> >> Many thanks, >> >> David >> >> >> >> >> >> ------------------------------------------------------------------------ >> >> ------------------------------------------------------------------------------ >> >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |