python绘制动态变化的图_用Jupyter Noteb中的matplotlib绘制动态变化图形

2023-11-15

我一直在寻找一个很好的解决方案,其中一个线程正在泵送数据,我们希望Jupyter笔记本不断更新图形,而不阻止任何事情。在查阅了十几个相关答案后,以下是一些发现:

小心

如果你想要一个实时的图表,不要使用下面的魔术。如果笔记本使用以下内容,则图形更新不起作用:%load_ext autoreload

%autoreload 2

在导入matplotlib之前,您需要在笔记本中使用以下魔法:%matplotlib notebook

方法1:使用FuncAnimation

这有一个缺点,即即使数据尚未更新,也会发生图形更新。下面的示例显示了另一个线程在Jupyter笔记本通过FuncAnimation更新图形时更新数据。%matplotlib notebook

from matplotlib import pyplot as plt

from matplotlib.animation import FuncAnimation

from random import randrange

from threading import Thread

import time

class LiveGraph:

def __init__(self):

self.x_data, self.y_data = [], []

self.figure = plt.figure()

self.line, = plt.plot(self.x_data, self.y_data)

self.animation = FuncAnimation(self.figure, self.update, interval=1000)

self.th = Thread(target=self.thread_f, daemon=True)

self.th.start()

def update(self, frame):

self.line.set_data(self.x_data, self.y_data)

self.figure.gca().relim()

self.figure.gca().autoscale_view()

return self.line,

def show(self):

plt.show()

def thread_f(self):

x = 0

while True:

self.x_data.append(x)

x += 1

self.y_data.append(randrange(0, 100))

time.sleep(1)

g = LiveGraph()

g.show()

方法2:直接更新

第二种方法是在数据从另一个线程到达时更新图形。这是有风险的,因为matplotlib不是线程安全的,但只要只有一个线程在进行更新,它似乎就可以工作。%matplotlib notebook

from matplotlib import pyplot as plt

from matplotlib.animation import FuncAnimation

from random import randrange

from threading import Thread

import time

class LiveGraph:

def __init__(self):

self.x_data, self.y_data = [], []

self.figure = plt.figure()

self.line, = plt.plot(self.x_data, self.y_data)

self.th = Thread(target=self.thread_f, daemon=True)

self.th.start()

def update_graph(self):

self.line.set_data(self.x_data, self.y_data)

self.figure.gca().relim()

self.figure.gca().autoscale_view()

def show(self):

plt.show()

def thread_f(self):

x = 0

while True:

self.x_data.append(x)

x += 1

self.y_data.append(randrange(0, 100))

self.update_graph()

time.sleep(1)

from live_graph import LiveGraph

g = LiveGraph()

g.show()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python绘制动态变化的图_用Jupyter Noteb中的matplotlib绘制动态变化图形 的相关文章

  • 搭建GitHub授权登录

    功能 搭建 功能 实现GitHub授权 获取用户在GitHub的有关信息 搭建 注册app 在GitHub的setting gt Developer Settings 开发者设置 中 点击New OAuth App 新建OAuth应用 根据
  • WebService 四种发布方式总结

    1 CXF方式 CXF与spring搭建webservice是目前最流行的方式 但是传闻cxf与jdk1 5有些不兼容 我没有遇到过 我遇到的问题是cxf与was6 1 1不兼容 表现在cxf必须的jar包 wsdl4j 1 6 2 jar
  • C++11 constexpr简单用法

    关键字 constexpr 是C 11中引入的关键字 声明为constexpr类型的变量 编译器会验证该变量的值是否是一个常量表达式 声明为constexpr的变量一定是一个常量 而且必须用常量表达式初始化 constexpr int mf
  • 如何使用GPT-4:一步步指南

    人工智能技术的发展 让自然语言处理成为了一个备受关注的领域 其中 GPT 4是当今最先进的自然语言处理模型之一 本文将详细介绍如何使用GPT 4进行自然语言生成 第一步 了解GPT 4 GPT 4是由OpenAI开发的自然语言处理模型 它采
  • Linux笔记--Shell编程入门

    查看当前环境下使用的shell 可以使用 echo SHELL 运行shell shell脚本是纯文本文件 通常以 sh作为后缀名 方便系统识别文件类型 但不是必需的 脚本文件中的第一行要指明系统使用哪种shell解释该shell文件 如
  • 计算机不显示桌面文件夹,电脑保存文件路径不显示桌面怎么办

    摘要 腾兴网为您分享 电脑保存文件路径不显示桌面怎么办 掌上电力 信达期货 小米手环 天翼购等软件知识 以及晒课网 国寿e门店 鼠标同步器 奇人怪事之谜 江西农村信用社 e视网 三星3200打印机驱动 超级人脉 晒黑的图片 烟花flash
  • kettle案例11-排序记录

    参考 ETL数据整合与处理 任务3 1 排序是对数据中心的无序记录 按照自然或客观规律 根据关键字段大小递增或递减的次序 对记录重新排列的过程 为了得出学生的成绩排名 需要对 2019年11月月考数学成绩 xls 文件 使用 排序记录 组件
  • JavaWeb图表插件的小研究

    背景 最近的一个项目中 对数据的统计分析有很大的要求 这就要求有一款很强大的报表 图表插件 因此 组长给分了任务 让我们各自去研究不同的图表插件 用了一两天的时间 对java这块的图表插件做了一个简单的研究 java方向的图报表还是有很多很
  • 小熊派BearPi-HM nano开发板 -- 前期准备

    课前准备 1 小熊派BearPi HM nano开发板 2 E53农业案例拓展版 3 学习资料 Ubuntu20 04版本 学习视频 学习课件 案例等等 安装教程 Ubuntu20 04安装及配置 开发环境Windows和Ubuntu的配置
  • STM32CubeMX ADC采样的坑

    1 选用了ADC1 IN15 ADC1 IN16 ADC1 IN17 ADC1 IN18会发现有的通道不能用 解决方法 把Sequencer设置为not fully configurable 这样子的弊端是无法再设置采样的先后优先级 但是
  • NBIOT模块连接巴法云实践(SIM7020)

    使用NBIOTSIM7020模块连接巴法云并进行数据通信 一 前期准备 1 巴法云新建主题 这里使用TCP协议 因此创建TCP设备云 2 模块 使用前焊接好模块天线 3 SIM卡 物联专用卡 4 USB UART接口 5 杜邦线4根 6 串
  • Ubuntu软件源、pip源大全,国内网站网址,阿里云、网易163、搜狐、华为、清华、北大、中科大、上交、山大、吉大、哈工大、兰大、北理、浙大

    文章目录 一 企业镜像源 1 阿里云 2 网易163 3 搜狐镜像 4 华为 二 高校镜像源 1 清华源 2 北京大学 3 中国科学技术大学源 USTC 4 上海交通大学 5 山东大学 6 吉林大学开源镜像站 7 哈尔滨工业大学开源镜像站
  • 像素鸟 代码 html,2021-04-05像素鸟代码

    html gt Document margin 0 padding 0 game width 800px height 600px background url images sky png position relative overfl
  • umi页面跳转定位问题

    突然发现 在umi页面中 如果没有设置页面定位 那么在页面中部或者底部点击跳转到下一页 会默认跳转到该页面对应的中部或者下部的位置 那么 如果想要在跳转时 直接定位到页面的头部 应该怎么做呢 首先 确定需求 目前项目的需求是 无论从上一页的
  • Access&Trunk&单臂路由

    一 实验要求 要求 1 pc1属于vlan10 配置静态IP地址192 168 1 2 24 2 pC2属于vlan20 配置静态IP地址192 168 2 2 24 3 LSw1交换机上配置PC1和PC2的网关地址 分别为192 168
  • 免费版对象存储【minIO】CentOS部署实践记录 2021

    之前一直用的七牛 不过是收费的 然后有些定制化需求 可能比较看重预算 然后就有了这篇开源方式 minio 一 简介 官方文档 http docs minio org cn docs MinIO 是一个基于Apache License v2
  • react打包成html5,create-react-app项目打包相关问题

    Q1 yarn build打包生成的文件直接点击index html报错 打不开 导致的问题是yarn build打包生成的文件部署到服务器时只能在服务器根目录 如果在其他文件夹里面会报错 A1 默认情况下 index html中引入js和
  • XSS-5注入靶场闯关(小游戏)——第五关

    一 首先先尝试 查看源代码 可以看到 他前面有一个引号 并且
  • 做出刷屏文字的6大哲学

    title 做出刷屏文字的6大哲学 date 2019 09 05 23 39 16 tags 刷屏 文字 哲学 published true hideInList false feature https s2 ax1x com 2019

随机推荐

  • 遥感影像语义分割论文笔记(二)Category Boundary Detection Network

    A semantic segmentation method with category boundary for Land Use and Land Cover LULC mapping of Very High Resolution V
  • 配置 gitlab https 访问

    文章目录 1 备份 2 生成SSL证书 3 配置文件 4 重启 5 访问 1 备份 docker exec ti gitlab ce gitlab rake gitlab backup create 2 生成SSL证书 yum instal
  • 药物 3D 打印新突破:圣地亚哥大学用机器学习筛选喷墨打印生物墨水,准确率高达 97.22%

    内容一览 药物喷墨打印是一种高度灵活和智能化的制药方式 据相关报告统计 该领域市场规模将在不久的未来呈现指数级增长 过往 筛选合适生物墨水的方法费时且费力 因此也成为药物喷墨打印领域面临的主要挑战之一 为解决这一问题 国际药剂学期刊 Int
  • 高斯牛顿法求非线性最小二乘的步骤和c++代码实现

    slam图优化的本质是一个非线性优化问题 Gauss Newton求解步骤 1 线性化误差函数 2 构建线性系统 3 求解线性系统 4 更新解 并不断迭代直至收敛 一个简单的代码实现 一维参数xy 高维变为对应的矩阵即可 include
  • 如何用cublas计算逆矩阵?

    cublas的文档中提供了一个用LU分解求逆矩阵的方法 需要用到两个函数 cublas
  • yum Error downloading packages: xxx [Errno 256] No more mirrors to try.

    问题 解决 yum clean all执行后再执行yum makecache 清除缓存以及重新下载相关包信息缓存到本地
  • C语言之自定义函数的实现

    自定义函数的作用 方便管理代码 编写程序时思路清晰 代码复用 同一段代码可以在不同位置多次执行 函数声明 使用 返回值类型 函数名 类型 变量名 类型 变量名 例如 int sum int num1 int num2 实际上 在函数声明时
  • 【Leetcode】154. 寻找旋转排序数组中的最小值 II

    题目描述 已知一个长度为 n 的数组 预先按照升序排列 经由 1 到 n 次 旋转 后 得到输入数组 例如 原数组 nums 0 1 4 4 5 6 7 在变化后可能得到 若旋转 4 次 则可以得到 4 5 6 7 0 1 4 若旋转 7
  • php脚本中利用mail函数发送邮件及问题归纳

    最近在学php脚本语言 书中有一个实例 服务器端将浏览器发送的信息通过php脚本 利用mail函数发送到一个邮箱 自己讲书中实例代码上传至服务器 在浏览器上填写表单 并提交后 邮箱迟迟收不到邮件 1 php中mail函数发送邮件失败问题 邮
  • 2021-10-19,Oracle VM VirtualBox中安装增强功能失败

    问题 Oracle VM VirtualBox中安装增强功能失败 根据给出的信息提示进行解决 This system is currently not set up to build kernel modules Please instal
  • 静态博客提升访问速度:内嵌CSS,异步加载js,压缩HTML

    在谷歌搜索的功能速度 实验性 中推荐使用工具PageSpeed Insights查看我的网页访问速度情况 PageSpeed Insights 分数很低 只有33分 优化建议的第一条是移除阻塞渲染的资源 里面列出了非异步加载的css和js文
  • 公告

    作为一个稳定 高效 安全的区块链底层平台 FISCO BCOS一方面致力于保障系统稳定性 兼容性 鲁棒性 易用性 另一方面专注于提升区块链底层平台的性能 可扩展性 自FISCO BCOS v3 0开始 社区更是秉着开源 开放 联合共建的原则
  • 最长公共子序列算法_解决最长公共子序列问题的算法和过程

    最长公共子序列算法 最长的公共子序列 Longest common Subsequence Let X and Y be two subsequences and by LCS algorithm we can find a maximum
  • 机器学习笔记——概率生成模型

    假设有两类数据 每一类都有若干个样本 概率生成模型认为每一类数据都服从某一种分布 如高斯分布 从两类训练数据中得到两个高斯分布的密度函数 具体的是获得均值和方差两个参数 测试样本输入到其中一个高斯分布函数 得到的概率值若大于0 5 则说明该
  • nestjs:判断字符串是否是邮箱格式

    问题 如标题 参考 js判断邮箱格式是否正确 掘金 解决 function checkIsMail mail string const regex a zA Z0 9 a zA Z0 9 a zA Z0 9 2 4 return regex
  • c++之全局变量

    全局变量需要我们在头文件声明 在cpp文件定义 请记住尽量这么做 保持操作的规范性 全局变量的使用 一般为两种 一种是不包含头文件 一种是包含了头文件 1 不包含头文件 例如我在test02 h中声明了全局变量 接下来在cpp中定义 如果想
  • 九十六、kettle版本8.2连接数据库的中文乱码问题

    在学习使用kettle 从Excel导数据到MySQL数据库的过程中踩了不少坑 总结一下以做前车之鉴 希望能给大家提供一点帮助 关于中文乱码目前找到了两种也可以叫三种方法 因为版本不同而方法可能不同 目前我使用第一种防范解决了中文乱码问题
  • React:状态提升案例-烧开水

    1 定义Boilingverdict组件 function Boilingverdict props if props celsius gt 100 return h1 水烧开了 h1 else return h1 水凉凉 h1 expor
  • ffmpeg基础一:解封装

    参考 零声学院 1 解封装流程 2 打开文件或媒体 获取文件或媒体的媒体信息AVFormatContext AVFormatContext是描述一个媒体文件或媒体流的构成和基本信息的结构体 AVFormatContext ifmt ctx
  • python绘制动态变化的图_用Jupyter Noteb中的matplotlib绘制动态变化图形

    我一直在寻找一个很好的解决方案 其中一个线程正在泵送数据 我们希望Jupyter笔记本不断更新图形 而不阻止任何事情 在查阅了十几个相关答案后 以下是一些发现 小心 如果你想要一个实时的图表 不要使用下面的魔术 如果笔记本使用以下内容 则图