Closed
Description
Initially reported at ContinuumIO/anaconda-issues#337
import numpy as np
import matplotlib as mpl
import matplotlib.pylab as plt
mpl.rcdefaults()
# This doesn't work
mpl.rcParams['font.serif'] = "Times, serif"
# This does
#mpl.rcParams['font.serif'] = "Bitstream Vera Serif, serif"
mpl.rcParams['text.usetex'] = "true"
x = np.random.normal(size=100)
y = np.random.normal(size=100)
plt.scatter(x, y)
plt.xlabel("$\gamma$")
plt.savefig("foo.png")
print("foo.png saved")
plt.savefig("bar.pdf")
print("bar.pdf saved")
traceback:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-10-3a778cad97aa> in <module>()
----> 1 exec(compile(open('/tmp/ipython-56520H0.py').read(), '/tmp/ipython-56520H0.py', 'exec')) # PYTHON-MODE
/tmp/ipython-56520H0.py in <module>()
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/pyplot.py in savefig(*args, **kwargs)
577 def savefig(*args, **kwargs):
578 fig = gcf()
--> 579 res = fig.savefig(*args, **kwargs)
580 draw() # need this if 'transparent=True' to reset colors
581 return res
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/figure.py in savefig(self, *args, **kwargs)
1507 self.set_frameon(frameon)
1508
-> 1509 self.canvas.print_figure(*args, **kwargs)
1510
1511 if frameon:
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/backends/backend_qt5agg.py in print_figure(self, *args, **kwargs)
158
159 def print_figure(self, *args, **kwargs):
--> 160 FigureCanvasAgg.print_figure(self, *args, **kwargs)
161 self.draw()
162
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/backend_bases.py in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, **kwargs)
2223 orientation=orientation,
2224 bbox_inches_restore=_bbox_inches_restore,
-> 2225 **kwargs)
2226 finally:
2227 if bbox_inches and restore_bbox:
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/backends/backend_pdf.py in print_pdf(self, filename, **kwargs)
2513 file.endStream()
2514 else: # we opened the file above; now finish it off
-> 2515 file.close()
2516
2517
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/backends/backend_pdf.py in close(self)
552 self.endStream()
553 # Write out the various deferred objects
--> 554 self.writeFonts()
555 self.writeObject(self.alphaStateObject,
556 dict([(val[0], val[1])
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/backends/backend_pdf.py in writeFonts(self)
648 matplotlib.verbose.report('Writing Type-1 font', 'debug')
649 fonts[Fx] = self.embedTeXFont(filename,
--> 650 self.dviFontInfo[filename])
651 else:
652 # a normal TrueType font
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/backends/backend_pdf.py in embedTeXFont(self, texname, fontinfo)
713 t1font = type1font.Type1Font(fontinfo.fontfile)
714 if fontinfo.effects:
--> 715 t1font = t1font.transform(fontinfo.effects)
716 fontdict['BaseFont'] = Name(t1font.prop['FontName'])
717
/home/tcaswell/source/my_source/matplotlib/lib/matplotlib/type1font.py in transform(self, effects)
334 if six.PY3 and isinstance(value, int):
335 value = chr(value)
--> 336 value = value.encode('latin-1')
337 buffer.write(value)
338 result = buffer.getvalue()
AttributeError: 'bytes' object has no attribute 'encode'