Maison  >  Article  >  développement back-end  >  Analyser les erreurs courantes et résoudre les problèmes tronqués en chinois avec matplotlib

Analyser les erreurs courantes et résoudre les problèmes tronqués en chinois avec matplotlib

PHPz
PHPzoriginal
2024-01-04 14:55:341085parcourir

Analyser les erreurs courantes et résoudre les problèmes tronqués en chinois avec matplotlib

Titre : Explication détaillée de la façon de corriger les erreurs courantes de caractères chinois tronqués dans matplotlib

Texte :

Lorsque nous utilisons Matplotlib pour dessiner des graphiques, nous rencontrons souvent des problèmes avec les caractères chinois tronqués, tels que les étiquettes, les titres et la police des axes. affichage dans le graphique Incorrect. Ce problème est principalement dû au fait que la police par défaut de Matplotlib ne prend pas en charge les caractères chinois. Dans cet article, plusieurs méthodes courantes seront détaillées pour aider à résoudre ce problème.

Méthode 1 : modifier les rcParams de Matplotlib

Matplotlib fournit un paramètre rcParams qui peut être utilisé pour définir la police globale. Nous pouvons spécifier des polices prenant en charge le chinois en modifiant ce paramètre.

D'une manière générale, nous pouvons choisir une police chinoise couramment utilisée, telle que SimHei, STSong, Microsoft YaHei, etc. Avant de modifier rcParams, nous devons d'abord déterminer le chemin d'installation de ces polices dans le système. Vous pouvez le visualiser avec le code suivant :

import matplotlib.font_manager as fm
fonts = fm.fontManager.ttflist
for font in fonts:
    print(font.name, font.fname)

Sélectionnez le nom d'une police, telle que "SimHei", et copiez son chemin complet. Ensuite, avant de dessiner le graphique, utilisez le code suivant pour définir les paramètres rcParams :

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

Méthode 2 : Utiliser un fichier de police personnalisé

S'il n'y a pas de police chinoise appropriée dans le système, nous pouvons également télécharger le fichier de police correspondant et ajouter dans le répertoire des polices de Matplotlib.

Tout d'abord, téléchargez le fichier de police à partir d'un site Web de ressources approprié, tel que "SimHei.ttf". Ensuite, recherchez le répertoire des polices de Matplotlib, qui peut être trouvé par le code suivant :

import matplotlib as mpl
print(mpl.get_cachedir())

Copiez le fichier de police dans ce répertoire, puis utilisez le code suivant pour enregistrer la police personnalisée avant de dessiner le graphique :

import matplotlib.font_manager as fm
fm.fontManager.addfont('/path/to/SimHei.ttf')

Ensuite, définir les paramètres rcParams Pour utiliser cette police :

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

Méthode 3 : Utiliser les polices système

S'il existe déjà une police chinoise appropriée dans le système, nous pouvons directement utiliser la police système pour dessiner des graphiques.

Tout d'abord, vérifiez les polices installées sur le système via le code suivant :

import matplotlib.font_manager as fm
fonts = fm.fontManager.ttflist
for font in fonts:
    print(font.name)

Sélectionnez un nom de police, tel que "Microsoft Yahei", puis avant de dessiner le graphique, utilisez le code suivant pour définir les paramètres rcParams :

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['微软雅黑']

De cette façon, vous pouvez utiliser les polices système pour afficher le chinois normalement.

Il convient de noter que les méthodes ci-dessus peuvent être légèrement différentes sur les systèmes Mac et Linux. La situation spécifique peut être ajustée en conséquence selon les différents systèmes.

Après avoir résolu le problème du chinois tronqué, nous pouvons utiliser normalement les caractères chinois dans Matplotlib. Ce qui suit est un exemple de code simple pour dessiner un graphique linéaire avec des titres et des étiquettes chinois :

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)

plt.title('中文标题')
plt.xlabel('横轴')
plt.ylabel('纵轴')

plt.show()

Avec la méthode ci-dessus, nous pouvons facilement résoudre le problème des caractères chinois tronqués dans Matplotlib et rendre nos graphiques plus beaux et plus faciles à lire. Dans le même temps, cela nous permet également de mieux appliquer Matplotlib pour le travail de visualisation de données.

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:
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