Maison  >  Article  >  développement back-end  >  Conseils et méthodes pour implémenter l'affichage chinois dans matplotlib

Conseils et méthodes pour implémenter l'affichage chinois dans matplotlib

王林
王林original
2024-01-13 10:32:061168parcourir

Conseils et méthodes pour implémenter laffichage chinois dans matplotlib

Conseils et méthodes d'affichage chinois matplotlib

Introduction :
matplotlib est une puissante bibliothèque de visualisation de données qui fournit des fonctions riches et des interfaces flexibles, permettant aux utilisateurs de créer facilement différents types de graphiques. Cependant, pour les utilisateurs chinois, matplotlib a quelques problèmes pour afficher le chinois. Cet article présentera certaines techniques et méthodes couramment utilisées pour résoudre les problèmes d'affichage chinois de matplotlib et fournira des exemples de code spécifiques.

1. Description du problème :
Par défaut, matplotlib ne prend pas en charge l'affichage chinois, mais utilise des polices anglaises pour le dessin. Cela fera apparaître les caractères chinois sous forme de carrés ou de caractères tronqués. Nous devons donc résoudre ce problème d’une certaine manière.

2. Paramètre de police :
Afin de résoudre le problème de l'affichage chinois, nous devons d'abord définir la police de matplotlib afin que les caractères chinois puissent être affichés correctement. Dans matin Dans l'exemple de code ci-dessus, vous pouvez voir que nous définissons les fontproperties dans les fonctions xlabel, ylabel et title. , définissez la police sur Chinois. Cela garantit que le titre du graphique et les étiquettes des axes affichent correctement les caractères chinois.

    4. Affichage chinois de la légende :
  1. La légende est une étiquette utilisée pour expliquer les éléments du graphique, généralement située dans le coin du graphique. Nous pouvons définir l'affichage chinois de la légende via les méthodes suivantes :

    import matplotlib.pyplot as plt
    
    plt.rcParams['font.sans-serif'] = ['SimHei']    # 设置中文字体为黑体
    plt.rcParams['axes.unicode_minus'] = False    # 解决负号显示问题
    
    # 示例代码
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    plt.plot(x, y)
    plt.xlabel('横轴')
    plt.ylabel('纵轴')
    plt.title('示例图表')
    plt.show()

    En définissant les paramètres dans la fonction legend, nous pouvons contrôler l'affichage chinois et la position de la légende. Dans l'exemple de code ci-dessus, nous définissons l'étiquette de la courbe via le paramètre label, puis utilisons le paramètre loc dans la fonction legend pour définir la position de la légende.
  2. 5. Affichage chinois de l'échelle de l'axe des coordonnées :

    Parfois, nous devons également définir l'affichage chinois de l'échelle de l'axe des coordonnées. Dans matplotlib, nous pouvons y parvenir en :

    import matplotlib.pyplot as plt
    from matplotlib.font_manager import FontProperties
    
    font = FontProperties(fname=r'path/to/font.ttf')    # 设置自定义字体路径
    
    # 示例代码
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    plt.plot(x, y)
    plt.xlabel('横轴', fontproperties=font)
    plt.ylabel('纵轴', fontproperties=font)
    plt.title('示例图表', fontproperties=font)
    plt.show()
  3. Dans l'exemple de code ci-dessus, nous définissons les étiquettes de graduation de l'axe x et de l'axe y via les xticks et yticks fonctions et utilisez des caractères chinois au lieu des étiquettes numériques par défaut.

6. Résumé :
Grâce aux méthodes ci-dessus, nous pouvons facilement résoudre le problème de l'affichage chinois matplotlib. En définissant la police, les étiquettes des axes, la légende et l'échelle des axes, nous pouvons garantir que les caractères chinois dans le graphique s'affichent correctement. C'est très important pour les utilisateurs chinois. xlabelylabeltitle函数中的fontproperties参数,将字体设置为中文。这样可以确保图表的标题和坐标轴标签正确显示中文字符。

四、图例的中文显示:
图例是用来解释图表中元素的标签,通常位于图表的一角。我们可以通过以下方法来设置图例的中文显示:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 示例代码
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 6, 8, 10]
y2 = [1, 3, 5, 7, 9]
plt.plot(x, y1, label='曲线1')
plt.plot(x, y2, label='曲线2')
plt.legend(['曲线1', '曲线2'], loc='upper right')    # 设置图例文字和位置
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.title('示例图表')
plt.show()

通过设置legend函数中的参数,我们可以控制图例的中文显示和位置。在上述示例代码中,我们通过label参数设置曲线的标签,然后使用legend函数中的loc参数设置图例的位置。

五、坐标轴刻度的中文显示:
有时候,我们还需要设置坐标轴刻度的中文显示。在matplotlib中,我们可以通过以下方法来实现:

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 示例代码
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.xticks(x, ['一', '二', '三', '四', '五'])    # 设置x轴刻度标签
plt.yticks([0, 2, 4, 6, 8, 10], ['零', '二', '四', '六', '八', '十'])    # 设置y轴刻度标签
plt.xlabel('横轴')
plt.ylabel('纵轴')
plt.title('示例图表')
plt.show()

在上述示例代码中,我们通过xticksyticks

Annexe : Polices chinoises couramment utilisées

Si vous n'aimez pas Song Dynasty, vous pouvez également utiliser d'autres polices chinoises pour afficher les caractères chinois. Voici quelques polices chinoises couramment utilisées :

Dynastie des chansons : SimSun

Corps noir : SimHei
  • Microsoft YaHei : Microsoft YaHei
  • Script officiel : LiSu STKaiti
  • Dynastie des chansons chinoises : STSong
  • Dynastie des chansons chinoises : STZhongsong
  • Dynastie des chansons chinoises : STFangsong
  • Références :
  • [1] Matplotlib.pyplot.xlabel https://matplotlib.org/stable/api/_as_gen/ matplotlib.pyplot.xlabel.html
  • [2] Matplotlib.pyplot. .ylabel. https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.ylabel.html
  • [3] Matplotlib.pyplot.title https://matplotlib.org/stable/api/_as_gen/matplotlib. pyplot.title.html
  • [4] Matplotlib.pyplot.legend https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html
  • [5] ​​Matplotlib.pyplot.xticks https: //matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.xticks.html
  • [6] Matplotlib.pyplot.yticks https://matplotlib.org/stable /api/_as_gen/matplotlib.pyplot.yticks.html

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