python - tamaño - cambiar la fuente por defecto de matplotlib
matplotlib font size default (4)
Estoy tratando de cambiar la fuente predeterminada de matplotlib a Helvetica Neue. En mi Mac con EPD / Canopy todo funcionó bien hace algún tiempo.
Tratar de hacer lo mismo en Ubuntu ahora y no está funcionando.
Esto es lo que hice:
Helvetica Neue Instalada
$ fc-match ''Helvetica Neue'':Light HelveticaNeue-Light.otf: "Helvetica Neue" "細體"
Convirtió el odt / dfont en ttf:
fondu -show HelveticaNeue.dfont
cambiado matplotlibrc a
$ cat ~/.config/matplotlib/matplotlibrc ... font.family: Helvetica Neue
También probé con:
font.family: sans-serif font.sans-serif: Helvetica Neue
Quité el caché de fuentes
rm ~/.config/matplotlib/fontList.cache
Pero ninguno de estos pasos está funcionando para mí.
$ python -c ''from matplotlib import pyplot as plt; plt.plot(1); plt.savefig("/tmp/test.png")''
/usr/local/lib/python2.7/dist-packages/matplotlib-1.3.0-py2.7-linux-x86_64.egg/matplotlib/font_manager.py:1236:
UserWarning: findfont: Font family [''Helvetica Neue''] not found. Falling back to Bitstream Vera Sans
(prop.get_family (), self.defaultFamily [fontext]))
La versión es 1.3.0
$ python -c ''import matplotlib; print matplotlib.__version__''
1.3.0
También intenté mover las fuentes a ~/.config/matplotlib/fonts/ttf
pero no funcionó.
EDITAR: Como sugerí, intenté seleccionar una fuente específica para un texto específico.
import matplotlib as mpl
mpl.use(''Agg'')
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager
path = ''/home/<myusername>/.fonts/HelveticaNeue.ttf''
prop = font_manager.FontProperties(fname=path)
prop.set_weight = ''light''
mpl.rcParams[''font.family''] = prop.get_name()
mpl.rcParams[''font.weight''] = ''light''
fig, ax = plt.subplots()
ax.set_title(''Text in a cool font'', fontproperties=prop, size=40)
plt.savefig(''/tmp/test2.png'')
Pero no hace ninguna diferencia.
/usr/local/lib/python2.7/dist-packages/matplotlib-1.3.0-py2.7-linux-x86_64.egg/matplotlib/font_manager.py:1236:
UserWarning: findfont: Font family [''Helvetica Neue''] not found. Falling back to Bitstream Vera Sans
Sin embargo, parece que tengo este problema solo con esta fuente Helvetica / Helvetica Neue. (prop.get_family (), self.defaultFamily [fontext]))
El caché de fuentes se muestra en un lugar diferente para mí (.cache / matplotlib / fontList.cache). Y antes de que tuviera tres de ellos en diferentes lugares de alguna manera: /
Tal vez intente buscarlo en su directorio personal:
find ~/ -name fontList.cache -exec rm {} /;
Esto no cambiará tu fuente permanentemente, pero vale la pena intentarlo.
matplotlib.rc(''font'', family=''sans-serif'')
matplotlib.rc(''font'', serif=''Helvetica Neue'')
matplotlib.rc(''text'', usetex=''false'')
matplotlib.rcParams.update({''font.size'': 22})
Kim ya introdujo la solución dinámica que funciona perfectamente, y aquí hay otras dos formas de hacer lo mismo en estática.
Primero, puede colocar una línea en el archivo rc para matplotlib. Consulte esta página para obtener más información sobre la ubicación del archivo y la configuración detallada.
font.family : NanumGothic
En segundo lugar, si está trabajando con ipython, puede colocar algunos comandos para la configuración de la fuente en un archivo de configuración para el shell interactivo. Encuentre el archivo llamado ipython_config.py que generalmente se encuentra en ~ / .ipython / en algún lugar. Luego agregue dos líneas más a la lista, c.InteractiveShellApp.exec_lines.
c.InteractiveShellApp.exec_lines = [
"import matplotlib as mpl",
"mpl.rcParams[''font.family''] = ''NanumGothic''"
]
Former siempre funciona en cualquier entorno en el que ejecute su script de shell, ya que carga la fuente cuando su script importa matplotlib.
Ubuntu 14.04 LTS
Sube las fuentes
sudo cp NotoSansKR-Regular.otf /usr/share/fonts/
Actualizar el caché de la fuente
sudo fc-cache -fv
Puedes consultar la lista de fuentes
fc-list
Reinicie ipython, etc. Compruebe la lista de fuentes
[f.name for f in matplotlib.font_manager.fontManager.ttflist]
Toma un nombre de fuente
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams[''font.family''] = ''Noto Sans Korean''
Dibujar
plt.title(u''한글 제목'')
plt.xlabel(u''한글 축 이름'')
plt.plot(range(5))