当前位置: 首页 > news >正文

解决Python matplotlib绘制图像无法显示中文的问题

引言

在数据可视化过程中,Python 的 Matplotlib 是广泛使用的绘图库。然而,在图表标题、坐标轴标签或图例中使用中文时,字符会显示为方块。这直接影响数据图表的可读性,尤其在学术论文、技术报告或博客中,这种可读性问题尤为突出。

问题剖析

我们使用以下代码查看 Matplotlib 所使用的全局默认 sans-serif 字体列表:

from matplotlib import rcParams, font_manager
print(rcParams['font.sans-serif'])
print(font_manager.FontProperties()) # 当前实际渲染所使用的字体

在 Windows 平台,Python 3.14,Matplotlib 3.10.7 运行结果如下:

['DejaVu Sans', 'Bitstream Vera Sans', 'Computer Modern Sans Serif', 'Lucida Grande', 'Verdana', 'Geneva', 'Lucid', 'Arial', 'Helvetica', 'Avant Garde', 'sans-serif']
DejaVu Sans

可以看到,Matplotlib 默认采用 DejaVu Sans 字体进行渲染,这是一个以拉丁字母(英文及西文字母)为主的西文字体,并不包含 CJK (中文、日文、韩文) 字符。这就导致了中文字符会显示为乱码或方块。

解决方案

我们可以手动替换 sans-serif 字体列表为 CJK 字体。一般地,我们使用无衬线字体黑体即可。在 Windows 平台上可使用微软雅黑(SimHei),在 Linux 平台上可使用文泉驿正黑(WenQuanYi Zen Hei)。同时强制使用 ASCII 负号显示负号,以避免字体自身对负号的渲染问题。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei','WenQuanYi Zen Hei']
plt.rcParams['axes.unicode_minus'] = False
http://www.dtcms.com/a/555095.html

相关文章:

  • 众趣分享丨数字孪生在智慧园区类场景的实战应用
  • wordpress 异步加速安徽优化推广
  • 湛江高端网站开发国际数据公司
  • 湖北洪湖市建设局网站app小程序
  • matlab设计滤波器详解
  • Web 前端可视化开发工具深度解析,从拖拽搭建到真机调试的全链路思维
  • 国外免费iphone网站南安seo优化推广
  • 关于static误区
  • win7怎么做网站服务器做教师知识网站有哪些
  • js基础:10、函数对象方法(call/apply)、arguments类数组对象、Date对象、Math工具类、包装类、字符串方法、正则表达式
  • seo学院培训班seo外包公司多吗
  • 潜江做网站的嘉兴地区有人做网站吗
  • CATIA/3DE CAA二次开发-工程图两圆内填充AreaFill
  • 百日挑战-单词篇(第九天)
  • 人物摄影网站创建微信公众号步骤
  • 二叉树序列化与反序列化
  • 焦作网站建设费用社交类网站开发需求
  • 杭州外贸网站建设公司申跃网站建设类型有哪些方面
  • 做视频网站 视频放在哪里找延庆营销型网站建设
  • 物联网的核心和基础是什么短视频seo询盘系统
  • XHR 创建对象
  • 个人网站建设软件合肥建站方案
  • 【Docker】P4 Docker 网络:掌握 Docker 自定义网络,玩转应用集群
  • 莞城网站制作如何看一个站点是不是有wordpress
  • 荆门网站建设公司WordPress百度智能小程序
  • 修改网站源码连接数据库怎么做网站关键词优化推荐贵阳方舟网络6
  • 辽宁网站建设墨子网站关闭多久排名会下降
  • BLDC双电机六步换相控制学习文档
  • 排序算法:高效数据处理的核心
  • 网站架构设计师工资水平自助建网站系统源码