解决pycharm中matplotlab画图不能显示中文的错误

大家在用matplotlab画图时想要设置的中文字体通常显示不出来,这是因为Matplotlib在渲染图形时找不到某些特定的字形(Glyph),尤其是中文字符。这些字符在你的默认字体中不存在,因此Matplotlib无法正确显示它们。

可以通过以下方法解决:

  • 通过设置config字典和更新mpl.rcParams,指定支持中文字符的字体(如宋体),可以避免这些警告。
  • mpl.use('tkAgg'): 确保图形在Tkinter窗口中正确显示。

其实只要在代码里面加上下面内容即可:

import matplotlib
import matplotlib.pyplot as plt
matplotlib.use('tkAgg')

# 设置图形配置
config = {
    "font.family": 'serif',
    "mathtext.fontset": 'stix',  # matplotlib渲染数学字体时使用的字体,和Times New Roman差别不大
    "font.serif": ['SimSun'],  # 宋体
    'axes.unicode_minus': False  # 处理负号,即-号
}
matplotlib.rcParams.update(config)

1.mpl.use('tkAgg')

mpl.use('tkAgg') 是用来设置Matplotlib的后端(backend)。Matplotlib有多个后端,它们决定了图形如何渲染和显示。tkAgg 是一个基于Tkinter(Python的标准GUI库)的agg后端,它会将图形渲染为位图(bitmap),并通过Tkinter窗口显示。

  • 用途: 这个设置通常在你需要通过图形用户界面(GUI)显示图形时使用。例如,如果你正在编写一个需要图形交互的应用程序,那么使用tkAgg后端是很有用的。

2. config 字典

这个字典包含了多个键值对,用来配置Matplotlib的图形显示行为。

  • "font.family": 'serif':

    • 设置默认字体为衬线字体(serif)。衬线字体通常在文本处理中使用,因为它们在长篇阅读时更易于识别。
  • "mathtext.fontset": 'stix':

    • 设置Matplotlib渲染数学字体时使用的字体集为STIX字体。STIX字体集是一组高质量的字体,专为科学和技术文档设计,与Times New Roman字体风格相似。
  • "font.serif": ['SimSun']:

    • 设置衬线字体为宋体(SimSun),这是一种常用的中文字体。
  • 'axes.unicode_minus': False:

    • 处理负号(-)的显示问题。在某些情况下,Unicode中的负号可能无法正确显示,因此将其设置为False可以确保负号以更可预测的方式显示。

3. mpl.rcParams.update(config)

  • 这一行代码将config字典中的配置应用到Matplotlib的全局设置中。mpl.rcParams是一个字典对象,包含Matplotlib的各种设置参数。通过调用update方法,可以将自定义配置应用到这些参数中,从而更改Matplotlib的默认行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

背水

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

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

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

打赏作者

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

抵扣说明:

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

余额充值