Neal Becker wrote:

> Using mpl 1.4.3 on Fedora 22, I'm trying to use stix font (so I can render
> the unicode lambda label on the x-axis).  I have every fedora package
> related to 'stix', I think. It displays ok in qtagg4, but if I try to save
> to pdf if fails with
> 
> RuntimeError                              Traceback (most recent call
> last) <ipython-input-2-7dee58c07264> in <module>()
> ----> 1 exec(open(r'/usr/tmp/python-8710q1Y.py').read()) # PYTHON-MODE
> 
> <string> in <module>()
> 
> /usr/lib64/python3.4/site-packages/matplotlib/pyplot.py in savefig(*args,
> **kwargs)
>     575 def savefig(*args, **kwargs):
>     576     fig = gcf()
> --> 577     res = fig.savefig(*args, **kwargs)
>     578     draw()   # need this if 'transparent=True' to reset colors
>     579     return res
> 
> /usr/lib64/python3.4/site-packages/matplotlib/figure.py in savefig(self,
> *args, **kwargs)
>    1474             self.set_frameon(frameon)
>    1475
> -> 1476         self.canvas.print_figure(*args, **kwargs)
>    1477
>    1478         if frameon:
> 
> /usr/lib64/python3.4/site-packages/matplotlib/backend_bases.py in
> print_figure(self, filename, dpi, facecolor, edgecolor, orientation,
> format, **kwargs)
>    2209                 orientation=orientation,
>    2210                 bbox_inches_restore=_bbox_inches_restore,
> -> 2211                 **kwargs)
>    2212         finally:
>    2213             if bbox_inches and restore_bbox:
> 
> /usr/lib64/python3.4/site-packages/matplotlib/backends/backend_pdf.py in
> print_pdf(self, filename, **kwargs)
>    2489                 file.endStream()
>    2490             else:            # we opened the file above; now
>    finish
> it off
> -> 2491                 file.close()
>    2492
>    2493
> 
> /usr/lib64/python3.4/site-packages/matplotlib/backends/backend_pdf.py in
> close(self)
>     523         self.endStream()
>     524         # Write out the various deferred objects
> --> 525         self.writeFonts()
>     526         self.writeObject(self.alphaStateObject,
>     527                          dict([(val[0], val[1])
> 
> /usr/lib64/python3.4/site-packages/matplotlib/backends/backend_pdf.py in
> writeFonts(self)
>     626                 chars = self.used_characters.get(stat_key)
>     627                 if chars is not None and len(chars[1]):
> --> 628                     fonts[Fx] = self.embedTTF(realpath, chars[1])
>     629         self.writeObject(self.fontObject, fonts)
>     630
> 
> /usr/lib64/python3.4/site-packages/matplotlib/backends/backend_pdf.py in
> embedTTF(self, filename, characters)
>    1101
>    1102         if fonttype == 3:
> -> 1103             return embedTTFType3(font, characters, descriptor)
>    1104         elif fonttype == 42:
>    1105             return embedTTFType42(font, characters, descriptor)
> 
> /usr/lib64/python3.4/site-packages/matplotlib/backends/backend_pdf.py in
> embedTTFType3(font, characters, descriptor)
>     887             # actual outlines)
>     888             rawcharprocs = ttconv.get_pdf_charprocs(
> --> 889                 filename.encode(sys.getfilesystemencoding()),
> glyph_ids)
>     890             charprocs = {}
>     891             for charname, stream in six.iteritems(rawcharprocs):
> 
> RuntimeError: TrueType font is missing table
> 

forgot to attach the code.


#!/usr/bin/python
# -*- coding: utf-8 -*-
data='''carriers,lambda,per
1,7,1.3e-4
1,8,3.0e-4
1,9,.0014
8,7,4.8e-4
8,8,1.3e-3
8,9,.0075
'''

import pandas as pd
try:
    from StringIO import StringIO
except ImportError:
    from io import StringIO
df = pd.read_csv (StringIO (data))
g = df.groupby ('carriers')
import matplotlib.pyplot as plt

import matplotlib as mpl
#mpl.rcParams['font.family'] = 'stix'
mpl.rc('font', family='DejaVu Sans')
#mpl.rc('font', family='stix')

import itertools
markers = itertools.cycle(['o','s','v']) 

fig = plt.figure() 
ax = fig.add_subplot(111)
for c, stuff in g:
    plt.semilogy (stuff['lambda'].values, stuff['per'].values, 
label='carriers=%s'%c, marker=next(markers))

plt.legend (loc='best')
ax.set_xlabel (' ')
ax.set_ylabel ('per')
plt.grid(which='major', linestyle='solid')
plt.grid(which='minor', linestyle='dashed') 
plt.savefig ('per_vs_lambda.pdf')






------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to