ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

在 Jupyter Notebook 中解决 matplotlib 绘图中文乱码

在 Jupyter Notebook 中解决 matplotlib 绘图中文乱码 在使用 Jupyter Notebook 进行数据可视化时调用matplotlib.pyplot绘图模块时出现中文乱码问题。无论是图例、标题、坐标轴标签中只要含有中文字符就会显示为一串乱码或方框影响图表的可读性。该问题的出现主要是由于系统默认字体中不包含中文字体而matplotlib在渲染时未找到支持中文的字体资源。解决方案要解决该问题需要为matplotlib指定一款支持中文的字体并通过rcParams或FontProperties设置生效。对于中文用户常用的方式是加载如SimHei黑体或Microsoft YaHei微软雅黑字体。此外为避免负号“-”在图中被错误渲染为方块还需要单独设置axes.unicode_minusFalse。通过matplotlib.font_manager模块设置字体路径并载入中文字体。rcParams是最常见的方式也可在全局配置文件中修改但这里以代码方式为主便于直接在 Notebook 环境中生效。importmatplotlib.pyplotaspltimportmatplotlibfrommatplotlibimportrcParams# 设置中文字体为 SimHei解决中文乱码rcParams[font.sans-serif][SimHei]# 解决负号 - 显示为方块的问题rcParams[axes.unicode_minus]False# 示例绘图x[1,2,3]y[10,20,15]plt.plot(x,y)plt.title(示例折线图)plt.xlabel(横坐标)plt.ylabel(纵坐标)plt.grid(True)plt.show()如果系统中没有 SimHei可以使用matplotlib.font_manager.FontProperties指定本地已有的字体文件路径frommatplotlib.font_managerimportFontProperties# 设置字体路径font_path/usr/share/fonts/truetype/arphic/ukai.ttc# 替换为实际路径fontFontProperties(fnamefont_path)plt.plot(x,y)plt.title(示例折线图,fontpropertiesfont)plt.xlabel(横坐标,fontpropertiesfont)plt.ylabel(纵坐标,fontpropertiesfont)plt.grid(True)plt.show()设置字体后图表中的标题、坐标轴、图例等元素均能正确显示中文字符不再出现乱码或方框问题图形展示效果符合中文环境使用需求。该问题虽小但具有普遍性在初学数据可视化时容易影响用户对matplotlib的直观印象。推荐在项目初始化或教学中预设好中文字体配置。更进一步可封装字体设置为函数或创建模板图形函数提升复用性。此外在多平台如 macOS、Linux、Windows下需要注意字体名称和路径的差异性建议根据操作系统条件进行字体自动适配提升代码的通用性与可移植性。
返回列表