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

Pycharm使用matplotlib出现的问题(1、不能弹出图表 2、图表标题中文不显示)

Pycharm使用matplotlib出现的问题

问题1:Pycharm调试时出现:AttributeError: module 'backend_interagg' has no attribute 'FigureCanvas'. Did you mean: 'FigureCanvasAgg'?

排查原因:可能是由于matplotlib后端设置不正确或与运行环境不兼容引起的。为了解决这个问题,我们可以尝试以下方法:

解决办法1:配置解决

1.1、Python中加入如下代码
import matplotlib.pyplot as plt

》》导入了 matplotlib.pyplot 模块,并将其重命名为 pltpyplot 是 matplotlib 中一个常用的子模块,它提供了类似于 MATLAB 的绘图接口,方便用户快速创建各种图表。

import matplotlib
matplotlib.use('TkAgg')  # 设置为交互式后端

》》调用 matplotlib.use() 函数,指定使用 TkAgg 作为后端。TkAgg 是 matplotlib 的一个图形用户界面后端,用于在 Tkinter 环境中显示图形。有时候,在某些环境下默认的后端可能无法正常显示图形,通过指定 TkAgg 可以解决部分显示问题。

1.2、Setting配置勾除:Show plots in tool window

问题解决,弹出图表(然后出现问题2)

解决方法2:升级matplotlib

pip install --upgrade matplotlib

问题2:图表中标题不显示,并且报错:UserWarning: Glyph 25968 (\N{CJK UNIFIED IDEOGRAPH-6570}) missing from font(s) DejaVu Sans.

这通常意味着matplotlib正在尝试渲染一个中文字符(例如“10”),但是当前配置的字体不支持这个字符。在中文环境中,很多图表和标签需要包含中文字符,因此确保字体包含这些字符是必要的。

方法1:指定字体

你可以通过设置matplotlib的rcParams来指定一个支持中文的字体。例如,你可以使用SimHei(黑体),这是Windows系统中常见的中文字体。

import matplotlib.pyplot as plt
 
# 设置matplotlib的字体为黑体,支持中文显示
plt.rcParams['font.sans-serif'] = ['SimHei']  # 或者其他支持中文的字体,比如 'Microsoft YaHei'
plt.rcParams['axes.unicode_minus'] = False  # 正确显示负号
 
# 绘图示例
#plt.plot([1, 2, 3], [4, 5, 6])
#plt.title('示例图表')
#plt.xlabel('X轴')
#plt.ylabel('Y轴')
#plt.show()

问题解决:

方法2:使用第三方库如Pillow进行图像渲染后再显示[我用的方法1解决了。这个AI提供的这里备上]

如果你在绘图时遇到字体问题,可以先使用支持中文的库如Pillow(PIL)来生成图像,然后再显示或保存图像。

from PIL import Image, ImageDraw, ImageFont
import matplotlib.pyplot as plt
import io
 
# 使用Pillow生成图像并添加中文文本
img = Image.new('RGB', (200, 100), color = (255, 255, 255))
d = ImageDraw.Draw(img)
font = ImageFont.truetype('/path/to/NotoSansCJK-Regular.otf', size=15)  # 确保路径正确,并选择合适的字体大小
d.text((10,10), '示例文本', font=font, fill=(0,0,0))
img_io = io.BytesIO()
img.save(img_io, 'png')
img_io.seek(0)  # 重置指针位置到文件开头
plt.imshow(Image.open(img_io))  # 使用matplotlib显示图像
plt.axis('off')  # 不显示坐标轴等杂项信息
plt.show()

 问题1参考:https://blog.csdn.net/weixin_62375676/article/details/143494190


http://www.kler.cn/a/568320.html

相关文章:

  • 【洛谷贪心算法】P1106删数问题
  • 数据集笔记:新加坡LTA MRT 车站出口、路灯 等位置数据集
  • 2025前端技能
  • Python正则
  • RocketMQ的运行架构
  • Linux驱动开发之ADC驱动与基础应用编程
  • 《基于Python的服务器实时监控运维系统的设计与开发》开题报告
  • P8697 [蓝桥杯 2019 国 C] 最长子序列
  • 浅显易懂HashMap的数据结构
  • 【AI大模型】使用Python调用DeepSeek的API,原来SDK是调用这个,绝对的一分钟上手和使用
  • Spring Boot的无缝衔接:深入解析与实践
  • C# Dictionary 使用指南
  • 解读DeepSeek开源的flashMLA项目的意义
  • 逻辑回归-乳腺癌肿瘤预测
  • 【PID】STM32通过闭环PID控制电机系统
  • k8s拉取harbor镜像部署
  • golang介绍,特点,项目结构,基本变量类型与声明介绍(数组,切片,映射),控制流语句介绍(条件,循环,switch case)
  • 海洋cmsv9报错注入,order by 和limit注入
  • NFC拉起微信小程序申请URL scheme 汇总
  • JavaScript 简单类型与复杂类型-简单类型传参