Python Matplotlib中文显示乱码的ASCII转码解决方案

拾柒
拾柒
发布时间:2026-10-13| 5人浏览过
原创

本文介绍在Python使用Matplotlib绘制图表时,解决X/Y轴中文标签显示为乱码的一种实用方法。通过在线工具将中文字符转换为ASCII编码(Unicode转义序列),直接嵌入代码字符串中,无需修改字体库文件即可实现中文正常显示,适用于3维及常规绘图场景。

具体实现效果如下所示:

#-*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
#k与客户端处理时间的值之间的关系
x=range(2,51,2)
y1=[5.393128497232703, 9.57638681757734, 13.828038570286598, 17.88060602988053, 22.943959373243686, 26.892428234326893, 30.47858918562443, 34.60601930629202, 39.37536486605157, 44.707097894669666, 49.00997474201327, 53.05414464511094, 57.211619356802395, 61.20307126632874, 65.41988871060431, 69.69244104837131, 73.63465839518058, 78.46661240393595, 82.84478734120208, 86.80821629368924, 90.99962335403121, 94.58170993534843, 98.88147657656751, 102.69580224812181, 107.41566442865962]
y2=[9.663068261869904, 17.801700100864338, 27.31914851265208, 35.79629518468646, 45.13319613177378, 51.95947650254608, 61.117229577687205, 68.43660202517938, 76.67479156176297, 86.81101547918409, 94.77081046684226, 103.12392211919445, 111.47750030247012, 120.47252739391641, 128.45760835724428, 136.5147527961354, 144.73356574866335, 153.792165453029, 162.01950037025804, 170.3556925013953, 179.1485561956748, 186.67093179599007, 195.2194576982225, 205.29080271621825, 213.35460299616648]
p2=plt.plot(x,y2,label='NA',color='black',marker='d',linewidth=1,mec='black', mfc='orange')
p3=plt.plot(x,y1,label='DA',color='black',marker='o',linewidth=1,mec='black',mfc='g')
plt.xlabel('k')
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)
plt.ylabel(u'整个过程的时间消耗 (ms)',fontproperties=font_set)
plt.legend()
plt.show()

在进行3维绘图时,也曾遇到类似的中文显示问题。查阅大量资料后发现,多数方案涉及修改Lib包中的字体配置文件,操作较为繁琐。为此,尝试了一种更为直接的方法:利用在线转码工具(如 http://tool.oschina.net/encode?type=3)将需要显示的中文直接转换为ASCII码(即Unicode转义序列),然后直接写入代码中。这种方法虽然看似简单,但能有效避免复杂的环境配置。

#-*- coding:utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
#k与客户端处理时间的值之间的关系
x=range(2,51,2)
y1=[5.393128497232703, 9.57638681757734, 13.828038570286598, 17.88060602988053, 22.943959373243686, 26.892428234326893, 30.47858918562443, 34.60601930629202, 39.37536486605157, 44.707097894669666, 49.00997474201327, 53.05414464511094, 57.211619356802395, 61.20307126632874, 65.41988871060431, 69.69244104837131, 73.63465839518058, 78.46661240393595, 82.84478734120208, 86.80821629368924, 90.99962335403121, 94.58170993534843, 98.88147657656751, 102.69580224812181, 107.41566442865962]
y2=[9.663068261869904, 17.801700100864338, 27.31914851265208, 35.79629518468646, 45.13319613177378, 51.95947650254608, 61.117229577687205, 68.43660202517938, 76.67479156176297, 86.81101547918409, 94.77081046684226, 103.12392211919445, 111.47750030247012, 120.47252739391641, 128.45760835724428, 136.5147527961354, 144.73356574866335, 153.792165453029, 162.01950037025804, 170.3556925013953, 179.1485561956748, 186.67093179599007, 195.2194576982225, 205.29080271621825, 213.35460299616648]
p2=plt.plot(x,y2,label='NA',color='black',marker='d',linewidth=1,mec='black', mfc='orange')
p3=plt.plot(x,y1,label='DA',color='black',marker='o',linewidth=1,mec='black',mfc='g')
plt.xlabel('k')
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)
plt.ylabel(u'\u6574\u4e2a\u8fc7\u7a0b\u7684\u65f6\u95f4\u6d88\u8017 (ms)',fontproperties=font_set)
plt.legend()
plt.show()

以上关于解决Python绘图时X/Y轴中文乱码问题的方法,就是小编分享的全部内容。希望能为遇到相同问题的朋友提供参考,也欢迎大家继续支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。