Python|解决Matplotlib中文及符号显示异常

对于中文显示要区分系统,win/mac系统的字体设置如下

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']     # win
plt.rcParams["font.family"] = 'Arial Unicode MS' # mac

对于符号的显示问题请添加如下代码:

plt.rcParams['axes.unicode_minus'] = False
### 如何在 Python Matplotlib 中正确显示中文字符 为了使 Matplotlib 正确显示中文字符并避免乱码问题,可以通过调整字体设置来实现。具体方法涉及修改 `rcParams` 参数以指定支持中文的字体。 #### 方法一:通过 rcParams 配置全局字体属性 可以在脚本开头加入以下代码片段,这会将默认无衬线字体设置为黑体 (SimHei),从而确保整个绘图过程中都能正常渲染中文: ```python import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False # 处理负号显示异常的问题 ``` 此配置使得所有后续创建的图表都采用 SimHei 字体,并解决了可能存在的负数符号显示不正确的情况[^4]。 #### 方法二:动态加载特定字体文件 如果希望更灵活地控制所使用的字体,可以直接实例化 `FontProperties` 对象并将目标 TTF 文件路径传递给它。这种方式允许程序运行时根据实际情况选择合适的字体资源: ```python from matplotlib.font_manager import FontProperties my_font = FontProperties(fname='/path/to/simhei.ttf') # 替换为实际路径 plt.text(x, y, '你好世界', fontproperties=my_font) ``` 这种方法适用于那些需要临时应用特殊样式或仅限于单个元素的应用场景[^1]。 #### 方法三:查找并注册系统内已安装的支持中文字体 对于不确定哪些字体能够良好呈现汉字的情形下,可以先枚举当前环境中可用的所有 TrueType 字体名称列表,再从中挑选适合的一个作为默认选项: ```python from matplotlib.font_manager import FontManager fm = FontManager() available_fonts = {f.name for f in fm.ttflist} print('Available Chinese fonts:', available_fonts) if 'SimSun' in available_fonts: plt.rcParams['font.family'] = 'SimSun' elif 'Arial Unicode MS' in available_fonts: plt.rcParams['font.family'] = 'Arial Unicode MS' else: raise ValueError("No suitable Chinese font found.") ``` 上述逻辑尝试优先选用宋体(SimSun);如果没有找到,则退而求其次考虑 Arial Unicode MS 这样的多语言兼容字体[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二哥不像程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值