Matplotlib est impossible de trouver des polices de base
Je suis à l'aide de matplotlib version 2.0.0 sur Python 3 dans un miniconda environnement virtuel. Je suis en train de travailler sur un unix scientifique cluster de calcul où je n'ai pas les privilèges root. Je suis généralement d'exécuter du code python à travers un ipython notebook. Si je fais une commande de base tels que:
import matplotlib.pyplot as plt
plt.scatter([1,5], [1,5])
Je reçois un message d'erreur:
path_to_miniconda/miniconda3/envs/conda34/lib/python3.4/site-
packages/matplotlib/font_manager.py:1297: UserWarning: findfont: Font family
['sans-serif'] not found. Falling back to DejaVu Sans
(prop.get_family(), self.defaultFamily[fontext]))
Je voudrais être en mesure d'utiliser la police Times New Roman, mais même après la suppression du fichier de cache de Police (fontList.py3k.cache) ce que je trouve ici:
import matplotlib as mpl
fm = mpl.font_manager
fm.get_cachedir()
Les commandes:
mpl.rcParams['font.family'] = ['serif']
mpl.rcParams['font.serif'] = ['Times New Roman']
n'ont aucun effet, j'obtiens la même erreur que ci-dessus. Les polices true type d'annuaire:
path_to_miniconda/miniconda3/envs/conda34/lib/python3.4/site-packages/matplotlib/mpl-data/fonts/ttf/
a seulement 40 polices de type: DejaVuSerif,DejaVuSans,STIX,cmb, cmt, cmj
Aucune idée de ce qui pourrait se passer et comment je peux ajouter des polices supplémentaires? Merci!
- J'ai eu le même problème. Merci pour votre astuce fm.get_cachedir(), j'ai effacé le cache incorrecte et maintenant ça fonctionne! Merci 🙂
- J'ai la même erreur, mais mes chiffres à la fin dans son empattement (en latex).
- Essayez de réinstaller, matplotlib publié la version 3 en 2018
Vous devez vous connecter pour publier un commentaire.
Ce travail pour moi::
RUN echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections
RUN apt-get install -y ttf-mscorefonts-installer
J'ai eu exactement ce même problème sur un Vagabond VM Ubuntu Xenial 64 bits. N'importe comment beaucoup de polices que j'avais déjà installé, matplotlib, c'était d'avoir un problème avec le "système" nom de la police "sans-serif". J'ai corrigé par:
sudo apt install font-manager
rm ~/.cache/matplotlib -fr
Pas plus de messages d'erreur concernant les sans-serif.
matplotlib.font_manager.get_cachedir()
À le faire fonctionner, j'ai dû combiner les deux réponses les plus fréquentes. Voici ce qui a fonctionné pour moi:
Une solution pour les utilisateurs de Windows, lorsque l'on est confronté avec l'avertissement:
Supprimer les polices situé dans matplotlib du cache.
Cache de l'emplacement:
import matplotlib as mpl; print(mpl.font_manager.get_cachedir())
Trouver matplotlib du répertoire de polices de caractères. Le chemin d'accès peut être semblable
C:\Miniconda3\pkgs\matplotlib-2.2.2-py36_1\Lib\site-packages\matplotlib\mpl-data\fonts\ttf
Copie des polices nécessaires comme Ordinateur Moderne à ce répertoire.
L'avertissement peut persister, mais votre parcelles de " police devrait changer de façon appropriée.
essayer toutes les méthodes ci-dessus, ne fonctionne pas pour moi.
ma façon de résoudre ce problème est un peu dirrent parce que je suis en utilisant conda sur ubuntu serveur exécutant jupyter
trouver un dossier
puis-je ajouter de la simhei polices dans le dossier des polices dans mpl de données .
ensuite, retirer matplotlib polices cache
redémarrer jupyter ordinateur portable, et cela fonctionne.
J'ai été confronté à un problème similaire dans un Nuage Datalab le panneau de l'image en cours d'exécution sur un gcloud VM. L'exécution de la suite corrigé le problème pour moi:
Ici est des instructions sur la façon d'obtenir le support de l'image en cours d'exécution sur le gcloud VM contenant le Datalab exemple juste au cas où.