Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save olgabot/8099973 to your computer and use it in GitHub Desktop.
Save olgabot/8099973 to your computer and use it in GitHub Desktop.
Finding matplotlib font locations
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": ""
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "code",
"collapsed": false,
"input": [
"import matplotlib\n",
"import matplotlib.font_manager as font_manager\n",
"import glob\n",
"\n",
"the_files = font_manager.findSystemFonts(fontpaths=None)\n",
"# Using the_files = font_manager.OSXInstalledFonts() produces the same results\n",
"for font_name in ['Open Sans', 'Lucida Grande', 'Avenir', 'Arial']:\n",
" print('')\n",
" print('** ' + font_name)\n",
" print(\"Names reported by font_manager for fonts in font_manager-found files with '\" + font_name + \"' in file name:\")\n",
" for the_file in the_files:\n",
" if font_name.replace(' ', '').lower() in the_file.replace(' ', '').lower():\n",
" the_props = font_manager.FontProperties(fname=the_file)\n",
" print \"\\t\" + the_props.get_name(), \n",
" print '\\t\\t', the_props._file\n",
"\n",
" print('')\n",
" font_in_file_name = font_name.replace(' ', '')\n",
" print(\"Files found through file system with '\" + font_in_file_name + \"' in file name:\")\n",
" for font_dir in ['/Users/olga/Library/Fonts/', '/Library/Fonts/', '/System/Library/Fonts/']:\n",
" for file in glob.glob(font_dir + font_in_file_name + '*.*'):\n",
" print(\"\\t\" + file)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"** Open Sans\n",
"Names reported by font_manager for fonts in font_manager-found files with 'Open Sans' in file name:\n",
"\n",
"Files found through file system with 'OpenSans' in file name:\n",
"\n",
"** Lucida Grande\n",
"Names reported by font_manager for fonts in font_manager-found files with 'Lucida Grande' in file name:\n",
"\n",
"Files found through file system with 'LucidaGrande' in file name:\n",
"\t/System/Library/Fonts/LucidaGrande.ttc\n",
"\n",
"** Avenir\n",
"Names reported by font_manager for fonts in font_manager-found files with 'Avenir' in file name:\n",
"\n",
"Files found through file system with 'Avenir' in file name:\n",
"\t/System/Library/Fonts/Avenir Next Condensed.ttc\n",
"\t/System/Library/Fonts/Avenir Next.ttc\n",
"\t/System/Library/Fonts/Avenir.ttc\n",
"\n",
"** Arial\n",
"Names reported by font_manager for fonts in font_manager-found files with 'Arial' in file name:\n",
"\tArial \t\t/Library/Fonts/Arial Bold Italic.ttf\n",
"\tArial Black \t\t/Library/Fonts/Arial Black.ttf\n",
"\tArial \t\t/Library/Fonts/Microsoft/Arial.ttf\n",
"\tArial \t\t/Library/Fonts/Microsoft/Arial Italic.ttf\n",
"\tArial \t\t/Library/Fonts/Arial Italic.ttf\n",
"\tArial \t\t/Library/Fonts/Microsoft/Arial Bold Italic.ttf\n",
"\tArial \t\t/Library/Fonts/Arial.ttf\n",
"\tArial Narrow \t\t/Library/Fonts/Arial Narrow.ttf\n",
"\tArial Narrow \t\t/Library/Fonts/Arial Narrow Bold.ttf\n",
"\tArial Narrow \t\t/Library/Fonts/Arial Narrow Italic.ttf\n",
"\tArial \t\t/Library/Fonts/Microsoft/Arial Bold.ttf\n",
"\tArial Rounded MT Bold \t\t/Library/Fonts/Arial Rounded Bold.ttf\n",
"\tArial \t\t/Library/Fonts/Arial Bold.ttf\n",
"\tArial Unicode MS \t\t/Library/Fonts/Arial Unicode.ttf\n",
"\tArial Narrow \t\t/Library/Fonts/Arial Narrow Bold Italic.ttf\n",
"\n",
"Files found through file system with 'Arial' in file name:\n",
"\t/Library/Fonts/Arial Black.ttf\n",
"\t/Library/Fonts/Arial Bold Italic.ttf\n",
"\t/Library/Fonts/Arial Bold.ttf\n",
"\t/Library/Fonts/Arial Italic.ttf\n",
"\t/Library/Fonts/Arial Narrow Bold Italic.ttf\n",
"\t/Library/Fonts/Arial Narrow Bold.ttf\n",
"\t/Library/Fonts/Arial Narrow Italic.ttf\n",
"\t/Library/Fonts/Arial Narrow.ttf\n",
"\t/Library/Fonts/Arial Rounded Bold.ttf\n",
"\t/Library/Fonts/Arial Unicode.ttf\n",
"\t/Library/Fonts/Arial.ttf\n",
"\t/Library/Fonts/ArialHB.ttc\n"
]
}
],
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"font = {'family': 'sans-serif',\n",
" 'sans-serif': ['Open Sans', 'Lucida Grande', 'Avenir', 'Arial', 'sans-serif']}\n",
"matplotlib.rc('font', **font)\n",
"plt.plot((0,1), (0,1))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"text": [
"[<matplotlib.lines.Line2D at 0x1079c3210>]"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\n5QBgj7IVOlUOAPayLPRMJqOWlhaFw2HFYjElk8khx7u7uzV37lyFw2G98847435TqhwA7Gc50Lu6\nupROp5VIJLRlyxa1tbVlj126dEnPPvusDhw4oM8//1xvvfWW/vrrL8s3S6Wk1lapsVHasUPatUua\nMsWe/xA3iMfj5V6CY7AX17AX17AXE2M50Ht6etTQ0CBJqq+vV19fX/bYt99+q1AopJqaGlVVVWn+\n/Pk6cuTIqOeiyvlhzcVeXMNeXMNeTIzlNfSBgQEFg8Hs88rKSmUyGVVUVGhgYEA1NTXZY7fccovO\nnj074nlaW7lWDgDFZjnQg8GgUqlU9vnVYS5JNTU1Q46lUindeuutI57napX76fIKAJScsbBnzx6z\natUqY4wxx44dM0uWLMkeS6fT5q677jJ///23uXjxopk1a5b5/fffh52jtrbWSOLBgwcPHnk8amtr\nrcbziALGGKNRGGO0du1anTx5UpLU0dGhEydOaHBwUM3Nzdq/f782b96sTCajpqYmtba2jnYqAECR\nWQ50AIB7lP1OUQCAPWwb6MW6CcmNxtqLzs5O3X///Zo/f75aW1vl5X8kjbUXV61evVobN24s8epK\na6y9+Oqrr7Rw4UItWLBAK1asUDqdLtNKi2+svdi3b5/mzJmjuXPnaufOnWVaZekcP35csVhs2Ot5\nz828r7qPYs+ePebpp582xhjT29trHnnkkeyxdDptQqGQ6e/vN+l02syZM8f8+eefdr2141jtxblz\n50xtba05f/68McaYlStXmo8//rgs6ywFq724aufOnWbevHlm48aNpV5eSVntRSaTMffdd59JJpPG\nGGPeeust891335VlnaUw1s/FHXfcYc6cOTNkdnjV1q1bzb333mvmzZs35PVC5qZthW7nTUhuZ7UX\n1dXVOnbsmKqrqyVJly9f1o033liWdZaC1V5IUiKR0Jdffqk1a9Z4+l8qkvVe/PDDD5o6dara29sV\njUbV39+v6dOnl2upRTfWz0VVVZX6+/t1/vx5GWMUCATKscySCIVC2rt377Cf/0Lmpm0DfbSbkK4e\nG+9NSF5gtReBQEC33XabJGnbtm36559/tGjRorKssxSs9uLUqVPavHmztm/f7vlhLlnvxenTp5VI\nJLRu3Tp99tlnOnjwoA4fPlyupRad1V5IUltbm2bNmqWZM2fq4YcfHvK9XvPYY49p0qThtwQVMjdt\nG+h23YTkBVZ7cfX5c889p4MHD2rPnj3lWGLJWO3F7t27dfr0aS1ZskRbt27VRx99pA8++KBcSy06\nq72YOnWqQqGQpk+frkmTJqmhoWFYtXqJ1V789ttv2r59u3799Vf98ssv+vPPP7V79+5yLbVsCpmb\ntg30SCSiTz/9VJLU29ururq67LEZM2boxx9/1JkzZ5ROp3XkyBHNmzfPrrd2HKu9kKQ1a9bo4sWL\n2rdvX/bSi1dZ7cW6devU19enw4cPa8OGDXriiSf01FNPlWupRWe1F3feeacGBwezvxw8evSoZs6c\nWZZ1loLVXly4cEGVlZW64YYbVFFRoWnTpqm/v79cSy2bQuambf8/9EcffVQHDhxQJBKRdOUmpM7O\nzuxNSO3t7Vq8eHH2JqTbb7/drrd2HKu9mD17tnbt2qWFCxfqgQcekCStX79ey5YtK+eSi2asn4tc\nXr5OKo29F++++66eeOIJGWMUiUT00EMPlXnFxTPWXjQ2NiocDqu6ulqhUEirVq0q74JL4OrP/0Tm\nJjcWAYBHcGMRAHgEAx0APIKBDgAewUAHAI9goAOARzDQAcAjGOgA4BEMdADwiP8DhkdXlPuG6FgA\nAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x10759cfd0>"
]
}
],
"prompt_number": 3
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This looks like Arial and not Avenir."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment