Rumah >pembangunan bahagian belakang >Tutorial Python >Kongsi kaedah untuk menyelesaikan masalah paparan aksara Cina matplotlib

Kongsi kaedah untuk menyelesaikan masalah paparan aksara Cina matplotlib

WBOY
WBOYasal
2024-01-04 08:59:351409semak imbas

Kongsi kaedah untuk menyelesaikan masalah paparan aksara Cina matplotlib

Berkongsi kaedah untuk menyelesaikan masalah aksara Cina yang kacau dalam Matplotlib

Matplotlib ialah perpustakaan visualisasi data yang berkuasa yang menyediakan fungsi lukisan yang kaya, tetapi dalam persekitaran Cina, masalah aksara yang kacau selalu berlaku. Artikel ini akan berkongsi beberapa kaedah untuk menyelesaikan masalah aksara Cina bercelaru dalam Matplotlib dan memberikan contoh kod khusus.

Kaedah 1: Tetapkan fon lalai

Fon lalai yang digunakan oleh Matplotlib tidak menyokong aksara Cina Kami boleh menyelesaikan masalah bercelaru dengan menetapkan fon lalai. Mula-mula, anda perlu menentukan nama fon yang menyokong bahasa Cina dalam sistem semasa, seperti "SimHei", "Microsoft YaHei", dsb. Seterusnya, gunakan matplotlib.rcParams untuk menetapkan fon.

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置默认字体为SimHei
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 绘图代码
plt.plot([1, 2, 3, 4])
plt.xlabel('横坐标')
plt.ylabel('纵坐标')
plt.title('示例图')

plt.show()

Dengan kod di atas, kami menetapkan fon lalai kepada "SimHei" dan menetapkan axes.unicode_minus kepada False, yang boleh menyelesaikan masalah tanda negatif yang dipaparkan dalam Matplotlib. Dengan cara ini, kita boleh memaparkan aksara Cina seperti biasa.

Kaedah 2: Gunakan fail fon tersuai

Jika tiada fon yang menyokong bahasa Cina secara lalai dalam sistem, kami boleh menyelesaikan masalah bercelaru dengan menggunakan fail fon tersuai. Mula-mula, anda perlu memuat turun fail fon yang menyokong aksara Cina, seperti "msyh.ttc". Seterusnya, gunakan FontProperties untuk memuatkan fon tersuai.

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

font = FontProperties(fname=r'path/to/msyh.ttc')  # 加载自定义字体

# 绘图代码
plt.plot([1, 2, 3, 4])
plt.xlabel('横坐标', fontproperties=font)
plt.ylabel('纵坐标', fontproperties=font)
plt.title('示例图', fontproperties=font)

plt.show()

Dengan kod di atas, kami memuatkan fail fon tersuai ke dalam FontProperties dan menentukan fon yang akan digunakan dalam lukisan menggunakan parameter fontproperties. Dengan cara ini, kita juga boleh memaparkan aksara Cina secara normal.

Kaedah 3: Gunakan ikon untuk memaparkan aksara Cina

Kadangkala, anda hanya perlu memaparkan aksara Cina di lokasi tertentu seperti legenda dan label dan bukannya tetapan global. Kita boleh menyelesaikan masalah aksara bercelaru dengan menentukan fon di lokasi tertentu. Contohnya, untuk menggunakan aksara Cina dalam legenda, anda boleh menggunakan parameter fontproperties.

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

font = FontProperties(fname=r'path/to/msyh.ttc')  # 加载自定义字体

# 绘图代码
plt.plot([1, 2, 3, 4], label='曲线', color='r')
plt.legend(prop=font)  # 图例中使用中文字符
plt.xlabel('横坐标')
plt.ylabel('纵坐标')

plt.show()

Dengan kod di atas, kami menggunakan "lengkung" aksara Cina dalam legenda dan menentukan penggunaan fon tersuai melalui parameter prop. Dengan cara ini, kita boleh memaparkan aksara Cina dengan betul dalam kedudukan tertentu.

Ringkasnya, kami boleh menyelesaikan masalah bercelaru Cina Matplotlib dengan menetapkan fon lalai, menggunakan fail fon tersuai dan menentukan fon di lokasi tertentu. Memilih kaedah yang sesuai boleh memaparkan aksara Cina dengan lebih baik dalam visualisasi data.

Atas ialah kandungan terperinci Kongsi kaedah untuk menyelesaikan masalah paparan aksara Cina 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