jupyter notebook 实现matplotlib图动态刷新


Posted in Python onApril 22, 2020

我就废话不多说了,大家还是直接看代码吧!

import matplotlib
%matplotlib inline
from IPython import display

需要刷新的地方,画完图之后添加

display.clear_output(wait=True)

补充知识:jupyter notebook matplotlib绘制动态图并显示在notebook中

有些时候matplotlib 的绘图没法显示在notebook中,或者显示不了。这与backend有关。

首先启动你的notebook,输入

%pylab

查看你的matplotlib后端,我的输出为:

Qt5Agg

这是后端的渲染方式,使用的是qt5渲染。激活方式为在绘图之前插入代码段:

%matplotlib qt5

这样就能显示出图,但是是显示在notebook之外的,如果我使用%matplotlib inline,图的显示并不正常。我也不知道为什么,,,,,,,,,,,,,

如果你输出的后端为其他类型,建议查看下面的资料,直接输入对应的绘图激活方式。

补充知识:matplotlib 常用backend

matplotlib 使用简明教程(一)-基础概念

Matplotlib 是一个用于绘制图表的 Python 库,可以用来处理图片、绘制统计类的图表。

本文分为几篇,主要目的在于说明 Matplotlib 的一些使用方法。第一篇用于介绍 Matplotlib 的一些基本概念。

基本组成

以官网中图片说明 Matplotlib 图表中的基本组成成分。

jupyter notebook 实现matplotlib图动态刷新

figure:整个画布,包含一个或多个 axes

axes:画布中的某一个图表,包含一个 plot

artist:元素,包括图中所示的 label、line 等,也包括 plot

backend

每一种输出的能力都叫做一种 backend,在我的理解中有点类似渲染器。

IPython 中的魔法语句 %matplotlib xxxx 就是选择 backend。

选用哪种 backend,其优先级选取如下:

matplotlibrc 文件中的 backend

使用 MPLBACKEND 环境变量

使用 matplotlib.use() 函数,需要在导入 pyplot 前使用

backend 从种类上,分为可交互型(user interface)和不可交互型两种(hardcopy),如果希望查看本地支持的 backend 有哪些,可以使用

matplotlib.rcsetup.interactive_bk # 可交互型
matplotlib.rcsetup.non_interactive_bk # 不可交互型
matplotlib.rcsetup.all_backends # 所有 backend

获取当前的 backend 可以使用 matplotlib.pyplot.get_backend()

常用 backend 已在文尾附上。

交互模式

我理解,“交互模式”即代表着这个图标在绘制后可以动态变化,例如预设的动画以及用户的操作。

当开启交互模式后,绘制的图表会自动更新、绘制,如果希望手动更新图表,则使用 draw() 函数;而在非交互模式下,当所有后台绘制完成后,需要使用 show() 函数,才会将最终图表展示出来。

如果希望使用交互模式,需要选用可交互型的 backend。

通过 matplotlib.interactive() 设置交互模式的开启与关闭

通过 matplotlib.is_interactive() 查询当前实发支持交互模式

也可以通过 matplotlib.pyplot.ion() 和 matplotlib.pyplot.ioff() 来开启/关闭交互模式

附:常用 backend

不可交互型

AGG:渲染为 png 文件

PS:渲染为 ps 文件

PDF:渲染为 pdf 文件

SVG:渲染为 svg 文件

Cairo:使用 Cairo 引擎渲染

可交互型

Qt5Agg:使用 Qt5 渲染,IPython 中可使用 %matplotlib qt5

Qt4Agg:使用 Qt4 渲染,IPython 中可使用 %matplotlib qt4

ipympl:使用 ipympl 库,Ipython 中可使用 %matplotlib ipympl

macosx:使用 Cocoa 画布渲染,Ipython 中可使用 %matplotlib osx

nbAgg:Jupyter Notebook 中使用的 backend,Jupyter 中使用 %matplotlib notebook 来激活

WXAgg:使用 wxWidgets 库来渲染,Ipython 中可使用 %matplotlib wx

inline:严格地讲并不是一个 backend,这个 IPython 中的一个语法,表示把图表嵌入笔记中,使用 %matplotlib inline

以上这篇jupyter notebook 实现matplotlib图动态刷新就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python写日志封装类实例
Jun 28 Python
Python实现字典依据value排序
Feb 24 Python
Python脚本实现虾米网签到功能
Apr 12 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
Python向MySQL批量插数据的实例讲解
Mar 31 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
Nov 01 Python
python实时获取外部程序输出结果的方法
Jan 12 Python
Python笔记之代理模式
Nov 20 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
基于python实现获取网页图片过程解析
May 11 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
Apr 22 #Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 #Python
Django数据结果集序列化并展示实现过程
Apr 22 #Python
jupyter notebook中新建cell的方法与快捷键操作
Apr 22 #Python
TensorFlow使用Graph的基本操作的实现
Apr 22 #Python
如何在django中运行scrapy框架
Apr 22 #Python
TensorFlow实现批量归一化操作的示例
Apr 22 #Python
You might like
PHP、Java des加密解密实例
2015/04/27 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
日期 时间js控件
2009/05/07 Javascript
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
详细解密jsonp跨域请求
2015/04/15 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
python计算牛顿迭代多项式实例分析
2015/05/07 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
python redis连接 有序集合去重的代码
2019/08/04 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
2020/06/15 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
软件测试工程师结构化面试题库
2016/11/23 面试题
房地产员工找工作的自我评价
2013/11/15 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
宾馆安全管理制度
2015/08/06 职场文书
解除租赁合同协议书
2016/03/21 职场文书
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers