前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matplotlib绘图backend报错—UserWarning: Matplotlib is currently using agg, which is a non-GUI backend

Matplotlib绘图backend报错—UserWarning: Matplotlib is currently using agg, which is a non-GUI backend

作者头像
SL_World
发布2021-09-18 15:22:24
4.5K0
发布2021-09-18 15:22:24
举报
文章被收录于专栏:X

前言:matplotlib绘图也有前端(frontend)后端(backend),这与网站开发中的前后端稍有不同,其前端指的是用python写的代码,比如我们调用plot函数,设置一些基本的title,legend参数等等。而实际的从0开始制图以及图片显示需要很繁杂的工作,这就需要有backend来干这些活。

matplotlib中的backend又分为两种:
  • User interface backends→Interactive backends,即交互式绘图后端,侧重渲染
  • Hardcopy backends→Non-interactive backends,即非交互式绘图后端,侧重读写
设置backend

最简便的方法是使用use()函数,注意需要在pyplot之前调用这个方法

代码语言:javascript
复制
import matplotlib as mpl
mpl.use('nbAgg')
import matplotlib.pyplot as plt
查看当前主机上支持的两种后端:
代码语言:javascript
复制
import matplotlib as mpl
  • 查看支持的交互式后端
代码语言:javascript
复制
mpl.rcsetup.interactive_bk
  • 查看支持的非交互式后端
代码语言:javascript
复制
mpl.rcsetup.non_interactive_bk

例如我的GPU上支持的前后端是

在这里插入图片描述
在这里插入图片描述

一、Interactive backends

使用交互式后端可以自动在屏幕上绘图,当你想实时绘图并直接在图片上进行其他操作时适合用这种后端。 刷新plot的函数:draw() 官方具体参数:

在这里插入图片描述
在这里插入图片描述

实例

在这里插入图片描述
在这里插入图片描述

二、Non-interactive backends

使用非交互式后端用于你要读写图片,或者要独立显示两幅以上的图片的情景

显示图片的函数:show()

官方具体参数值:

在这里插入图片描述
在这里插入图片描述

三、报错解决

问题描述:由于一开始在Jupyter上使用的是

代码语言:javascript
复制
mpl.use('Agg')

所以报错如下

代码语言:javascript
复制
UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, 
so cannot show the figure

解决方法,查找自己设备支持的交互式后端,如我的是nbAgg,然后修改为

代码语言:javascript
复制
mpl.use('nbAgg')

即可

补充

对于绘图风格,官网上提供了很多种,默认参数为default

代码语言:javascript
复制
import matplotlib as mpl
mpl.style.use('default') 

网址如下:https://matplotlib.org/3.2.1/gallery/style_sheets/style_sheets_reference.html

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • matplotlib中的backend又分为两种:
  • 设置backend
  • 查看当前主机上支持的两种后端:
  • 一、Interactive backends
  • 二、Non-interactive backends
  • 三、报错解决
  • 补充
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档