Este problema puede llegar a tener un par de diferentes causas: (antes de que se produzca algún trazado)
La fuente predeterminada no incluye estos glifos
Es posible cambiar la fuente predeterminada utilizando la siguiente
matplotlib.rc('font', family='Arial')
En algunas versiones de matplotlib que tendrá la familia te conjunto:
matplotlib.rc('font', **{'sans-serif' : 'Arial',
'family' : 'sans-serif'})
(Tenga en cuenta que debido a sans-serif
contiene un guión dentro de la sintaxis **{}
, en realidad es necesario.)
El primer comando cambia la familia sans-serif
fuente a contener sólo un tipo de letra (en mi caso fue Arial), la segundo establece la familia de fuentes predeterminada a sans-serif
.
Se incluyen otras opciones in the documentation.
Ha creado incorrectamente objetos de cadena/passsed en Matplotlib
Incluso si la fuente contiene glifos adecuados, si se olvidó de usar u
para crear Unicode constantes, Matplotlib tendrá este comportamiento:
plt.xlabel("Średnia odległość między stacjami wsparcia a modelowaną [km]")
Así que hay que añadir u
:
plt.xlabel(u"Średnia odległość między stacjami wsparcia a modelowaną [km]")
Otra causa es que se olvidó de poner un comentario magia UTF-8 en la parte superior del archivo (he leído que este might be the source of the problem):
# -*- coding: utf-8 -*-
De acuerdo con los documentos [] (http://matplotlib.org/api/artist_api .html # matplotlib.text.Text.set_family), puede pasar directamente un nombre de fuente en lugar de una familia. Esto funciona para mí: 'matplotlib.rc ('font', family = 'DejaVu Sans')' – Lekensteyn
¡Definitivamente esta es la mejor sintaxis! Dejaré el antiguo en caso de que fuera realmente necesario para algún tipo de versión matplotlib antigua. –