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根据出生年份简单计算生肖的方法
Mar 27 Python
在Django中使用Sitemap的方法讲解
Jul 22 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
Mar 19 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
python 顺时针打印矩阵的超简洁代码
Nov 14 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
pyqt5 实现 下拉菜单 + 打开文件的示例代码
Jun 20 Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 Python
python如何删除列为空的行
Jul 17 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 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对字符串的递增运算分析
2010/08/08 PHP
php visitFile()遍历指定文件夹函数
2010/08/21 PHP
php结合表单实现一些简单功能的例子
2011/06/04 PHP
php开发过程中关于继承的使用方法分享
2011/06/17 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
Jquery从头学起第四讲 jquery入门教程
2010/08/01 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
js实现分割上传大文件
2016/03/09 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
使用node-media-server搭建一个简易的流媒体服务器
2021/01/20 Javascript
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
python3调用windows dos命令的例子
2019/08/14 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
python sleep和wait对比总结
2021/02/03 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
应用化学专业职业生涯规划书
2014/01/22 职场文书
师德师风演讲稿
2014/05/05 职场文书
毕业生对母校寄语
2015/02/26 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android