Maison développement back-end Tutoriel Python Solutions au problème d'affichage chinois des dessins Python matplotlib dans les systèmes Linux

Solutions au problème d'affichage chinois des dessins Python matplotlib dans les systèmes Linux

Jun 18, 2017 am 11:39 AM
linux matplotlib python à propos 系统

Cet article présente principalement comment résoudre le problème d'affichage chinois du dessin python matplotlib dans le système Linux. Les amis qui en ont besoin peuvent se référer à

Récemment, je veux apprendre quelques données python. contenu d'analyse. J'ai créé un robot pour explorer certaines données et j'ai prévu d'utiliser l'ensemble d'outils d'Anaconda (pandas, numpy, scipy, matplotlib, jupyter) pour effectuer une exploration et une analyse préliminaires des données.

Lorsque vous utilisez matplotlib pour dessiner une image, l'abscisse est en chinois, mais l'abscisse du graphique à barres dessiné montre toujours "frame", donc je suis allé vérifier les informations pour le résoudre. Je pense que cela devrait être un problème relativement courant. Il existe en effet beaucoup de documents chinois sur Internet, mais aucun d'entre eux n'a complètement résolu le problème que j'ai rencontré. Il a fallu près de 3 heures de travail au coup par coup pour enfin y parvenir. J'aimerais partager ceci dans l'espoir que cela puisse aider d'autres enfants qui ont le même problème.

Environnement d'exécution :

Problème :

  • Dessin matplotlib, impossible d'afficher le chinois

Cause du problème :

  • Aucune police chinoise n'est disponible dans le système d'exploitation Linux et la bibliothèque de polices matplotlib

  • Le package matplotlib ne prend en charge que le code ASCII par défaut et ne prend pas en charge le code Unicode

Résumé des informations en ligne :

  • Modifier les ressources matplotlib Fichier de configuration, par exemple, ajouter Police "Simhei" (cette police n'est pas toutes Tous les systèmes Linux sont bons ! La modification n'a aucun effet)

  • Installez les polices chinoises pour Linux et modifiez le fichier de configuration des ressources de matplotlib. (Haha, ça ne marche pas)

Solution :

En fait, c'est aussi une combinaison de diverses solutions sur Internet . De manière générale, il y a les étapes suivantes :

1. Obtenez le chemin d'accès au fichier matplotlibrc. Entrez dans le carnet Jupyter :


import matplotlib
matplotlib.matplotlib_fname()
Copier après la connexion

Par exemple, mon fichier est à :


u'~/miniconda2/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc'
Copier après la connexion

Les étapes suivantes modifieront les paramètres de police dans ce fichier.

2. Jetez un œil à toutes les polices du système, ainsi qu'aux polices chinoises disponibles. Également dans jupyter nb :


from matplotlib.font_manager import FontManager
import subprocess
fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
print mat_fonts
output = subprocess.check_output(
  'fc-list :lang=zh -f "%{family}\n"', shell=True)
print '*' * 10, '系统可用的中文字体', '*' * 10
print output
zh_fonts = set(f.split(',', 1)[0] for f in output.split('\n'))
available = mat_fonts & zh_fonts
print '*' * 10, '可用的字体', '*' * 10
for f in available:
  print f
Copier après la connexion

Après avoir terminé l'opération ci-dessus, vous constaterez que les "Polices disponibles" sont vides. Parce qu'il n'y a pas de polices chinoises pour matplotlib (c'est pourquoi les caractères chinois sont tous affichés sous forme de "cases")

3. Supposons qu'il n'y ait pas de polices chinoises dans le système d'exploitation. À ce stade, téléchargez une police chinoise ttf et installez-la dans cenos. Vous devez installer un système capable de détecter font-family, sinon il sera invalide. Je l'ai téléchargé depuis ce site : http://font.chinaz.com/130130474870.htm

Décompressez le fichier rar. Créez le dossier yourfontdir pour stocker cette police sous le chemin /usr/share/fonts et copiez le fichier ttf téléchargé dans yourfontdir (vous pouvez changer le fichier en un nom anglais pour une utilisation plus facile)

4. Installez cenos. cette police.


cd /usr/share/fonts/yourfontsdir
#生成字体索引信息. 会显示字体的font-family
sudo mkfontscale
sudo mkfontdir
#更新字体缓存:
fc-cache
Copier après la connexion

5. Modifier le fichier matplotlibrc

Modifier la configuration du fichier matplotlibrc obtenue à l'étape 1.

Supprimez les commentaires dans la partie font.family et ajoutez une police chinoise à la police de support font.serif. Ici, ajoutez la famille de polices de la police chinoise que vous venez de télécharger. Vous pouvez la rechercher via la commande fc-list (il est donc préférable de l'écrire avant). Ce que j'ai ajouté ici est la police "WenQuanYi Zen Hei Mono".

Le commentaire suivant doit être supprimé, sinon le signe moins chinois affichera également un carré :


axes.unicode_minus : False
Copier après la connexion

6. Cette étape est la plus important! Ajouter des polices chinoises à matplotlib

Après avoir terminé l'étape 5, puis passer à l'étape 2, vous constaterez que les "polices chinoises disponibles" contiennent déjà les polices que vous venez d'installer, mais le dessin ne peut toujours pas afficher le chinois. En effet, vous avez installé la police dans centos et demandé à matplotlib d'utiliser cette police, mais matplotlib ne trouve pas le fichier ttf de cette police. . . . Je dois donc m'en procurer un.

Copiez la police ttf téléchargée dans le chemin suivant :


~/miniconda2/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf
Copier après la connexion

et supprimez le cache associé . Dans le chemin suivant :


~/.cache/matplotlib
Copier après la connexion

Supprimer le cache lié aux polices

7. Essayez maintenant de dessiner à nouveau une image. Fait.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Explication détaillée du principe docker Explication détaillée du principe docker Apr 14, 2025 pm 11:57 PM

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Comment utiliser Docker Desktop Comment utiliser Docker Desktop Apr 15, 2025 am 11:45 AM

Comment utiliser Docker Desktop? Docker Desktop est un outil pour exécuter des conteneurs Docker sur les machines locales. Les étapes à utiliser incluent: 1. Installer Docker Desktop; 2. Démarrer Docker Desktop; 3. Créer une image Docker (à l'aide de DockerFile); 4. Build Docker Image (en utilisant Docker Build); 5. Exécuter Docker Container (à l'aide de Docker Run).

Python vs JavaScript: communauté, bibliothèques et ressources Python vs JavaScript: communauté, bibliothèques et ressources Apr 15, 2025 am 12:16 AM

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Docker utilise Macvlan Docker utilise Macvlan Apr 15, 2025 am 06:57 AM

Macvlan dans Docker est un module de noyau Linux qui permet aux conteneurs d'avoir leur propre adresse MAC, permettant l'isolement du réseau, l'amélioration des performances et l'interaction directe avec le réseau physique. L'utilisation de macvlan nécessite: 1. Installez le module du noyau; 2. Créer un réseau Macvlan; 3. Affecter les segments d'adresse IP; 4. Spécifiez le réseau Macvlan lors de la création de conteneurs; 5. Vérifiez la connexion.

Quelles technologies sous-jacentes Docker utilise-t-elle? Quelles technologies sous-jacentes Docker utilise-t-elle? Apr 15, 2025 am 07:09 AM

Docker utilise des moteurs à conteneurs, des formats de miroir, des pilotes de stockage, des modèles de réseau, des outils d'orchestration de conteneurs, de la virtualisation du système d'exploitation et du registre des conteneurs pour prendre en charge ses capacités de conteneurisation, offrant un déploiement et une gestion d'applications légères, portables et automatisées.

Que faire si l'image Docker échoue Que faire si l'image Docker échoue Apr 15, 2025 am 11:21 AM

Dépannage des étapes pour la construction d'image Docker échouée: cochez la syntaxe Dockerfile et la version de dépendance. Vérifiez si le contexte de construction contient le code source et les dépendances requis. Affichez le journal de construction pour les détails d'erreur. Utilisez l'option - cibler pour créer une phase hiérarchique pour identifier les points de défaillance. Assurez-vous d'utiliser la dernière version de Docker Engine. Créez l'image avec --t [Image-Name]: Debug Mode pour déboguer le problème. Vérifiez l'espace disque et assurez-vous qu'il est suffisant. Désactivez SELINUX pour éviter les interférences avec le processus de construction. Demandez de l'aide aux plateformes communautaires, fournissez Dockerfiles et créez des descriptions de journaux pour des suggestions plus spécifiques.

VScode ne peut pas installer l'extension VScode ne peut pas installer l'extension Apr 15, 2025 pm 07:18 PM

Les raisons de l'installation des extensions de code vs peuvent être: l'instabilité du réseau, les autorisations insuffisantes, les problèmes de compatibilité système, la version de code vs est trop ancienne, un logiciel antivirus ou des interférences de pare-feu. En vérifiant les connexions réseau, les autorisations, les fichiers journaux, la mise à jour vs du code, la désactivation des logiciels de sécurité et le redémarrage du code ou des ordinateurs, vous pouvez progressivement dépanner et résoudre les problèmes.

See all articles