Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-backports > by-pkgid > a44f8c7e78ee9c5838c1fb080c9e7630 > files > 1316

python-matplotlib-doc-1.1.1-1mdv2010.1.noarch.rpm

.. _pylab_examples-font_table_ttf:

pylab_examples example code: font_table_ttf.py
==============================================

[`source code <font_table_ttf.py>`_]

::

    #!/usr/bin/env python
    # -*- noplot -*-
    """
    matplotlib has support for freetype fonts.  Here's a little example
    using the 'table' command to build a font table that shows the glyphs
    by character code.
    
    Usage python font_table_ttf.py somefile.ttf
    """
    import sys, os
    from matplotlib.ft2font import FT2Font
    from pylab import figure, table, show, axis, title
    from matplotlib.font_manager import FontProperties
    
    # the font table grid
    
    labelc = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
              'A', 'B', 'C', 'D', 'E', 'F']
    labelr = ['00', '10', '20', '30', '40', '50', '60', '70', '80', '90',
              'A0', 'B0', 'C0', 'D0', 'E0', 'F0']
    
    fontname = sys.argv[1]
    font = FT2Font(fontname)
    codes = font.get_charmap().items()
    codes.sort()
    
    # a 16,16 array of character strings
    chars = [ ['' for c in range(16)] for r in range(16)]
    colors = [ [(0.95,0.95,0.95) for c in range(16)] for r in range(16)]
    
    figure(figsize=(8,4),dpi=120)
    for ccode, glyphind in codes:
        if ccode>=256: continue
        r,c = divmod(ccode,16)
        s = unichr(ccode)
        chars[r][c] = s
    
    
    
    lightgrn = (0.5,0.8,0.5)
    title(fontname)
    tab = table(cellText=chars,
                rowLabels=labelr,
                colLabels=labelc,
                rowColours=[lightgrn]*16,
                colColours=[lightgrn]*16,
                cellColours=colors,
                cellLoc='center',
                loc='upper left')
    
    for key, cell in tab.get_celld().items():
        row, col = key
        if row>0 and col>0:
            cell.set_text_props(fontproperties=FontProperties(fname=sys.argv[1]))
    axis('off')
    show()
    

Keywords: python, matplotlib, pylab, example, codex (see :ref:`how-to-search-examples`)