Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Selesaikan sebab dan penyelesaian untuk matplotlib Cina memaparkan aksara bercelaru

Selesaikan sebab dan penyelesaian untuk matplotlib Cina memaparkan aksara bercelaru

王林
王林asal
2024-01-13 12:37:05677semak imbas

Selesaikan sebab dan penyelesaian untuk matplotlib Cina memaparkan aksara bercelaru

Sebab dan penyelesaian untuk aksara Cina yang kacau dalam matplotlib memerlukan contoh kod khusus

Pengenalan:
Apabila menggunakan pustaka visualisasi data Python matplotlib, ramai pengguna telah menghadapi masalah aksara Cina yang kacau. Apabila kita ingin memaparkan aksara Cina dalam carta, kita sering mendapati bahawa aksara Cina dipaparkan sebagai rentetan aksara yang bercelaru dan tidak boleh dipaparkan dengan betul. Artikel ini akan membincangkan punca aksara Cina bercelaru dan menyediakan beberapa penyelesaian supaya carta kami boleh memaparkan aksara Cina dengan betul.

1. Sebab aksara Cina bercelaru:
Sebab utama aksara Cina bercelaru ialah tetapan fon lalai matplotlib tidak menyokong aksara Cina. Ini kerana fon lalai yang digunakan oleh matplotlib ialah fon yang tidak mengandungi aksara Cina, jadi apabila kita cuba memaparkan aksara Cina, aksara yang bercelaru akan terhasil.

2. Penyelesaian:
Kunci untuk menyelesaikan masalah aksara Cina yang kacau ialah mengubah suai tetapan fon matplotlib supaya ia menyokong aksara Cina. Dua penyelesaian yang biasa digunakan diterangkan di bawah.

  1. Gunakan fon Cina sedia ada dalam sistem:
    matplotlib menyediakan fail konfigurasi matplotlibrc Kami boleh menggunakan fail konfigurasi ini untuk menentukan fon yang digunakan. Dalam matplotlibrc, terdapat parameter font.family, yang boleh kita tetapkan kepada fon Cina sedia ada dalam sistem.

Pertama, kita perlu menyemak fon Cina sedia ada dalam sistem. Dalam sistem Linux, kita boleh melihat fon yang dipasang melalui arahan fc-list, dan dalam sistem Windows, kita boleh melihatnya melalui tetapan fon dalam panel kawalan.

Selepas mencari fon Cina yang ingin kami gunakan, isikan laluan failnya ke dalam matplotlibrc, tetapkan font.family sebagai nama fail, dan kemudian salin fail matplotlibrc ke direktori fail konfigurasi matplotlib.

Berikut ialah kod sampel khusus:

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

font = FontProperties(fname='/usr/share/fonts/truetype/simhei.ttf', size=14)  # 设置中文字体

plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('横轴', fontproperties=font)  # 使用中文字体显示横轴标签
plt.ylabel('纵轴', fontproperties=font)  # 使用中文字体显示纵轴标签

plt.show()
  1. Muat turun dan gunakan fon yang menyokong aksara Cina:
    Selain menggunakan fon Cina sedia ada dalam sistem, kami juga boleh memuat turun dan menggunakan beberapa fon yang menyokong aksara Cina.

Dalam modul matplotlib.font_manager, terdapat kelas FontProperties yang boleh kita gunakan untuk memuatkan fail fon dan menentukan fon untuk digunakan semasa melukis.

Berikut ialah contoh kod khusus:

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

font = FontProperties(fname='字体文件路径', size=14)  # 设置中文字体

plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.xlabel('横轴', fontproperties=font)  # 使用中文字体显示横轴标签
plt.ylabel('纵轴', fontproperties=font)  # 使用中文字体显示纵轴标签

plt.show()

Perlu diingat bahawa semasa memuat turun dan menggunakan fon, anda perlu memastikan bahawa fail fon adalah sah dan tidak melanggar hak cipta.

Kesimpulan:
Artikel ini memperkenalkan punca matplotlib aksara Cina bercelaru dan menyediakan dua penyelesaian. Dengan mengubah suai tetapan fon lalai atau memuat turun dan menggunakan fon yang menyokong aksara Cina, kami boleh menyelesaikan masalah aksara Cina bercelaru dan memaparkan aksara Cina seperti biasa. Saya harap artikel ini dapat membantu pembaca yang menghadapi masalah yang sama.

Atas ialah kandungan terperinci Selesaikan sebab dan penyelesaian untuk matplotlib Cina memaparkan aksara bercelaru. 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