Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Petua dan kaedah untuk melaksanakan paparan bahasa Cina dalam matplotlib

Petua dan kaedah untuk melaksanakan paparan bahasa Cina dalam matplotlib

王林
王林asal
2024-01-13 10:32:061170semak imbas

Petua dan kaedah untuk melaksanakan paparan bahasa Cina dalam matplotlib

Petua dan kaedah paparan Cina matplotlib

Pengenalan:
matplotlib ialah perpustakaan visualisasi data yang berkuasa yang menyediakan fungsi yang kaya dan antara muka yang fleksibel, membolehkan pengguna membuat pelbagai jenis carta dengan mudah. Walau bagaimanapun, bagi pengguna Cina, matplotlib mempunyai beberapa masalah dalam memaparkan bahasa Cina. Artikel ini akan memperkenalkan beberapa teknik dan kaedah yang biasa digunakan untuk menyelesaikan masalah paparan Cina matplotlib dan memberikan contoh kod khusus.

1. Penerangan masalah:
Secara lalai, matplotlib tidak menyokong paparan bahasa Cina, tetapi menggunakan fon bahasa Inggeris untuk melukis. Ini akan menyebabkan aksara Cina muncul sebagai segi empat sama atau aksara bercelaru. Oleh itu, kita perlu menyelesaikan masalah ini melalui beberapa kaedah.

2. Tetapan fon:
Untuk menyelesaikan masalah paparan bahasa Cina, kita perlu menetapkan fon matplotlib supaya aksara Cina boleh dipaparkan dengan betul. Dalam matplotlib, kita boleh menetapkan fon dengan cara berikut:

  1. matplotlib.rcParams kaedah:

    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()
  2. Tetapkan fon secara langsung:

    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. Tajuk label paksi dan paksi Cina: contoh kod di atas, anda boleh melihat bahawa kami menetapkan fontproperties dalam fungsi xlabel, ylabel dan title Parameter , tetapkan fon kepada bahasa Cina. Ini memastikan bahawa tajuk carta dan label paksi memaparkan aksara Cina dengan betul.
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()

在上述示例代码中,我们通过xticksyticks4. Paparan legenda Cina:

Lagenda ialah label yang digunakan untuk menerangkan unsur-unsur dalam carta, biasanya terletak di sudut carta. Kita boleh menetapkan paparan Cina legenda melalui kaedah berikut:

rrreee
Dengan menetapkan parameter dalam fungsi legend, kita boleh mengawal paparan Cina dan kedudukan legenda. Dalam contoh kod di atas, kami menetapkan label lengkung melalui parameter label dan kemudian menggunakan parameter loc dalam fungsi legend untuk tetapkan kedudukan legenda.

5. Paparan skala paksi koordinat dalam bahasa Cina:
Kadangkala, kita juga perlu menetapkan paparan skala paksi koordinat dalam bahasa Cina. Dalam matplotlib, kita boleh mencapai ini dengan:

rrreee
    Dalam kod contoh di atas, kami menetapkan label tanda bagi paksi-x dan paksi-y melalui xticks dan yticks functions , dan gunakan aksara Cina dan bukannya label angka lalai.
  • 6. Rumusan:
  • Melalui kaedah di atas, kita boleh menyelesaikan masalah paparan Cina matplotlib dengan mudah. Dengan menetapkan fon, label paksi, legenda dan skala paksi, kami boleh memastikan bahawa aksara Cina dalam carta dipaparkan dengan betul. Ini sangat penting untuk pengguna Cina.
  • Lampiran: Fon Cina yang biasa digunakan
  • Jika anda tidak menyukai Dinasti Song, anda juga boleh menggunakan fon Cina lain untuk memaparkan aksara Cina. Berikut ialah beberapa fon bahasa Cina yang biasa digunakan:
  • Dinasti Lagu: SimSun
  • Badan hitam: SimHei
  • Microsoft YaHei: Microsoft YaHei
  • Skrip rasmi: LiSu STKaiti
  • Chinese SONGSONG Dynasty:Chinese STKaiti
  • Chinese Song Dynasty Song

Dinasti Lagu Cina: STFangsong


Rujukan:
[1] Matplotlib.pyplot.xlabel https://matplotlib.org/stable/api/_as_gen/ matplotlib.pyplot.xlabel.py] Matplotlib[2.html] .ylabel. https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.ylabel.html
[3] Matplotlib.pyplot.title. pyplot.title.html
[4] Matplotlib.pyplot.legend https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.legend.html

[5] ​​Matplotlib.pyplot.xticks. //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. 🎜

Atas ialah kandungan terperinci Petua dan kaedah untuk melaksanakan paparan bahasa Cina dalam matplotlib. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn