matplotlib 坐标轴上不显示负号及中文问题

本文介绍如何在Matplotlib中正确显示中文标签和负号,包括临时解决方案和永久解决方案。临时解决方案通过添加两行代码实现;永久解决方案则涉及配置matplotlib的字体设置。

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

临时解决:

添加两行代码

import matplotlib as plt
 
plt.rcParams['font.sans-serif']=['SimHei']    # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False    # 用来正常显示负号

永久解决:

(1)找到需要的字体:
打开matplotlib字体list路径,默认为C:\用户\用户名.matplotlib,打开fontList.json,查找是否包含simHei字体,没有可查找其他字体,比如 song、kai等。
(2)设置中文字体
查看matplotlib配置文件

import matplotlib
print(matplotlib.matplotlib_fname())

打开找到,以

font.family         : sans-serif
font.sans-serif 	:SimHei....  #添加所需字体
axes.unicode_minus  : True    # 修改为False,作用是解决负号的乱码问题

开头三行代码,去掉注释,在font.family 里添加所需字体,保存重新运行,即可解决。

### PyCharm 中 Matplotlib 绘制图表时坐标轴字体显示的解决方案 当在 PyCharm 使用 Matplotlib 进行绘图遇到中文字符无法正常显示的情况,可以通过配置 Matplotlib 的 rc 参数来解决问题。 #### 设置全局字体样式 为了使整个项目中的图形都能正确显示中文,可以在脚本开头设置默认字体。通过 `matplotlib` 库提供的接口可以方便地完成这一操作: ```python import matplotlib.pyplot as plt import matplotlib # 配置全局字体为微软雅黑以支持中文显示 matplotlib.rc('font', family='Microsoft YaHei') ``` 这段代码确保了后续创建的所有图像都将使用指定的中文字体[^2]。 #### 处理特殊符号如负号 除了基本的文字外,对于一些特殊的数学符号(比如负数),也需要特别处理才能保证其能被正确渲染出来: ```python plt.rcParams['axes.unicode_minus'] = False # 正常显示负号 ``` 此命令会修正 Unicode 编码下的减号显示问题,使得数值型数据能够按照预期呈现[^4]。 #### 完整示例代码 下面给出一段完整的 Python 脚本用于测试上述方法的效果: ```python import matplotlib.pyplot as plt import matplotlib # 设置字体以便于显示中文 matplotlib.rc('font', family='Microsoft YaHei') # 确保负号也能正确展示 plt.rcParams['axes.unicode_minus'] = False squares = [1, 4, 9, 16, 25] fig, ax = plt.subplots() ax.plot(squares, linewidth=3) # 添加标题和标签,并调整颜色大小等属性 ax.set_title("主题", fontsize=14) ax.set_xlabel("横坐标", fontsize=14, color='red') ax.set_ylabel("纵坐标", fontsize=14, color='red') ax.tick_params(axis='both', which='major', labelsize=10) plt.show() ``` 执行以上代码后应该可以看到带有清晰可读汉字标注的折线图窗口弹出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值