彻底解决pycharm中用matplotlib表格绘制时图表中汉字设置

本文介绍如何在Matplotlib中解决中文显示问题,通过导入matplotlib库并设置font参数为'STXingkai',确保汉字正常显示。附带查看可用字体和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们使用matplotlib绘制表格在代码里面已经输入了相应x,y轴的标签了但是运行出来结果中没有显示汉字,所有现在我们来解决这个问题,废话不多说直接上带码

出现错误的列子:

from matplotlib import pyplot as plt
squares=[1,4,9,16,25]
fig,ax=plt.subplots()
ax.plot(squares,linewidth=3)
ax.set_title("平方数",fontsize=15)
ax.set_xlabel("值",fontsize=15)
ax.set_ylabel("值的平方",fontsize=15)
ax.tick_params(axis='both',labelsize=15)
plt.show()

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4piG566A57qm5YWI55Sf,size_20,color_FFFFFF,t_70,g_se,x_16

由上面代码执行出来图表可以看到X,Y轴,标题上没有显示汉字,代码里面明明写的有汉字但是结果中没有显示 ,其实主要原因是matplotlib有很多语言但是默认的语言不是汉语,需要自己设置语言,需要加入的代码如下:

import matplotlib#需要导入的库
matplotlib.rc("font", family='STXingkai')#family是设置的字体

 如果不知道自己的matplotlib系统中有有哪些字体可以用下列代码进行查看,代码如下:

from matplotlib.font_manager import FontManager

mpl_fonts = set(f.name for f in FontManager().ttflist)
print(mpl_fonts)

 查询到的所有语言如下:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4piG566A57qm5YWI55Sf,size_20,color_FFFFFF,t_70,g_se,x_16

 下面是我整理出来的所有汉语

['DengXian', 'FangSong', 'FZShuTi', 'FZYaoTi', 'KaiTi', 'LiSu', 'Malgun Gothic', 'Microsoft JhengHei', 'Microsoft YaHei', 'MS Gothic', 'SimHei', 'SimSun', 'STCaiyun', 'STFangsong', 'STHupo', 'STKaiti', 'STLiti', 'STSong', 'STXihei', 'STXingkai', 'STXinwei', 'STZhongsong', 'YouYuan', 'Yu Gothic']

接下来我们把上面的那个设置语言的代码加进来运行看看,代码如下:

from matplotlib import pyplot as plt
    # 新增加的两行
import matplotlib
matplotlib.rc("font", family='STXingkai')
# 或者
# plt.rcParams['font.family'] = 'SimHei'  # 替换为你选择的字体

squares=[1,4,9,16,25]
fig,ax=plt.subplots()
ax.plot(squares,linewidth=3)
ax.set_title("平方数",fontsize=15)
ax.set_xlabel("值",fontsize=15)
ax.set_ylabel("值的平方",fontsize=15)
ax.tick_params(axis='both',labelsize=15)
plt.show()

运行结果:

watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA4piG566A57qm5YWI55Sf,size_20,color_FFFFFF,t_70,g_se,x_16

 语言 设置好了汉字不就出来了,在自己感谢每一个来捧场大佬们,制作不易给个一连三赞吧!

个人博客网站欢迎访问,欢迎访问

### 解决 PyCharmMatplotlib 绘图中文显示乱码的方法 在 PyCharm 使用 Matplotlib 进行绘图,如果遇到中文显示乱码的情况,可以通过以下几种方式解决: #### 方法一:通过修改 `rcParams` 参数 可以在代码中显式指定字体为支持中文的字体(如 SimHei),并禁用 Unicode 负号处理。这种方法简单易行,适合临解决问题。 ```python import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ["SimHei"] # 设置字体为黑体 plt.rcParams["axes.unicode_minus"] = False # 处理负号乱码问题 x = [1, 2, 3, 4] y = [-1, -2, 3, 4] plt.plot(x, y, label="示例数据") plt.title("测试标题", fontsize=14) # 添加带有中文的标题 plt.xlabel("X轴标签") # X轴中文标签 plt.ylabel("Y轴标签") # Y轴中文标签 plt.legend() plt.show() ``` 上述代码可以有效解决中文乱码问题[^1]。 --- #### 方法二:更改 Matplotlib 的全局字体配置文件 此方法适用于希望永久解决中文乱码问题的情形。具体操作如下: 1. **查找 Matplotlib 字体配置路径** 可以通过以下代码获取当前系统的 Matplotlib 配置文件路径: ```python import matplotlib print(matplotlib.matplotlib_fname()) ``` 2. **下载并安装中文字体** 如果系统未预装中文字体,则需手动下载并安装一款支持中文的字体(如 SimHei 或 Noto Sans CJK)。可以从网络资源下载 TTF 文件,并将其放置于系统字体目录或项目根目录中[^2]。 3. **编辑 Matplotlib 配置文件** 打开上一步查找到的 `matplotlibrc` 文件,在其中添加或修改以下内容: ``` font.family: sans-serif font.sans-serif: SimHei, DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif axes.unicode_minus: False ``` 保存后重新启动 Python 环境即可生效。 --- #### 方法三:动态加载本地字体 如果不希望通过修改全局配置的方式解决问题,也可以在脚本中动态加载特定字体文件。这种方式更加灵活,尤其适合跨平台开发场景。 ```python from matplotlib import font_manager import matplotlib.pyplot as plt # 加载本地字体文件 my_font = font_manager.FontProperties(fname=r"C:\Windows\Fonts\simhei.ttf") x = [1, 2, 3, 4] y = [-1, -2, 3, 4] plt.plot(x, y, label="示例数据") plt.title("测试标题", fontsize=14, fontproperties=my_font) plt.xlabel("X轴标签", fontproperties=my_font) plt.ylabel("Y轴标签", fontproperties=my_font) plt.xticks(fontproperties=my_font) plt.yticks(fontproperties=my_font) plt.legend(prop=my_font) plt.show() ``` 以上代码能够确保即使在不同环境中运行也能正确显示中文字符[^5]。 --- #### 方法四:检查系统已安装字体列表 有可能是因为系统缺少合适的中文字体而导致乱码现象。此可通过以下代码查看当前可用字体列表,并从中挑选合适的一项作为默认字体。 ```python from matplotlib import font_manager font_list = sorted([f.name for f in font_manager.fontManager.ttflist]) for i in font_list: print(i) ``` 一旦发现存在适配的中文字体名称(例如 'Microsoft YaHei' 或 'Noto Sans SC'),可以直接替换至 `rcParams` 设置项中[^4]。 --- ### 总结 针对 PyCharmMatplotlib 图形界面无法正常渲染中文的问题,推荐优先尝试调整 `rcParams` 参数;对于长期需求则建议更新 Matplotlib 全局配置文件或将目标字体嵌入到工程内部实现独立部署效果更佳。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值