python制作动态条形图-python – 动态更新matplotlib中的条形图
我的Raspberry Pi附带了许多传感器;我使用TCP每秒两次将数据发送到我的PC.我想使用matplotlib连续绘制这些值.
我目前使用的方法似乎效率低下(我正在清理子图并每次重绘它)并且有一些不良缺点(每次都会重新调整比例;我希望它保持在0.0 – 5.0之间).我知道有一种方法可以做到这一点,而不必清除和重绘,但似乎无法搞清楚.以下是我目前的代码:
import socket
import sys
import time
from matplotlib import pyplot as plt
# Create a TCP/IP socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connect the socket to the port where the server is listening
server_address = ('192.168.0.10', 10000)
print >>sys.stderr, 'connecting to %s port %s' % server_address
sock.connect(server_address)
# Initial setup for the bar plot
plt.ion()
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
x = [1,2,3]
labels = ['FSR', 'Tilt', 'IR']
ax.set_xticklabels(labels)
y = [5.0,5.0,5.0]
ax.bar(x,y)
fig.autofmt_xdate()
plt.draw()
#Grab and continuously plot sensor values
try:
for i in range(300):
amount_received = 0
amount_expected = len("0.00,0.00,0.00")
# Receive data from RasPi
while amount_received < amount_expected:
data = sock.recv(14)
amount_received += len(data)
print >>sys.stderr, 'received "%s"' % data
# Plot received data
y = [float(datum) for datum in data.split(',')]
ax.clear()
ax.bar(x,y)
plt.draw()
time.sleep(0.5)
#Close the socket
finally:
print >>sys.stderr, 'closing socket'
sock.close()
解决方法:
你可以使用animation.FuncAnimation.
绘制一次条形图并保存返回值,这是一组Rects:
rects = plt.bar(range(N), x, align='center')
然后,要更改条形的高度,请调用rect.set_height:
for rect, h in zip(rects, x):
rect.set_height(h)
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def animate(frameno):
x = mu + sigma * np.random.randn(N)
n, _ = np.histogram(x, bins, normed=True)
for rect, h in zip(patches, n):
rect.set_height(h)
return patches
N, mu, sigma = 10000, 100, 15
fig, ax = plt.subplots()
x = mu + sigma * np.random.randn(N)
n, bins, patches = plt.hist(x, 50, normed=1, facecolor='green', alpha=0.75)
frames = 100
ani = animation.FuncAnimation(fig, animate, blit=True, interval=0,
frames=frames,
repeat=False)
plt.show()
标签:python,matplotlib
来源: https://codeday.me/bug/20190923/1813809.html
python制作动态条形图-python – 动态更新matplotlib中的条形图相关推荐
- 教你如何用python制作黑板模拟器 python 项目小发明 【安安教具】-【工具】-【黑板】模拟器
黑板模拟器是一个多线程控制尝试,需要做到通过tkinter实现对鼠标的控制和监督.鼠标在移动时会有一个线程来检测鼠标的位置,计算窗口的位置,计算出鼠标在窗口中的位置,结合canvas画布实现对黑板的涂 ...
- 如何用python制作温度计模拟器 python项目小发明 【安安教具】-【物理】-【温度计】模拟器
温度计测量水温的过程要满足如下条件: 1.不能碰烧杯底. 2.不能碰烧杯壁. 设计一款动手实践上面过程的软件,就是接下来要完成的~ 我们先看一下效果: 如何用python制作温度计模拟器 python ...
- 如何利用Python制作可以动的动态图表。
来源:机器之心 原文链接:https://towardsdatascience.com/learn-how-to-create-animated-graphs-in-python-fce780421a ...
- python绘制pr曲线图_如何利用Python制作可以动的动态图表。
来源:机器之心 原文链接:https://towardsdatascience.com/learn-how-to-create-animated-graphs-in-python-fce780421a ...
- python 制作gif-利用Python如何制作好玩的GIF动图详解
前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...
- python绘图背景透明_如何在 Matplotlib 中更改绘图背景
介绍Matplotlib是Python中使用最广泛的数据可视化库之一.无论是简单还是复杂的可视化项目,它都是大多数人的首选库.在本教程中,我们将研究如何在Matplotlib中更改绘图的背景.导入数据 ...
- 教你如何用python制作三角形模拟器 python项目小发明 【安安教具】-【数学】-【三角形】模拟器
三角形的三个点互相连接组成了一个平面图形,我们如何用python制作一个可以展示各种三角形的软件呢? 我们先看看效果: 这个东西要如何使用呢?我们看一下视频: 三角形模拟器 可以看到,控制三角形的三个 ...
- python高逼格动态图_40行Python制作超炫酷动态排序图,有了它高逼格PPT再也不愁!...
前言 最近,这种动态排序条形图视频超级火,如下图: 具体来说,这种图可以叫:Bar Chart Race,有什么国家GDP的.某某沉浮史等等,为了符合公众号的身份属性,我们为大家制作了这个较为简单的可 ...
- 使用Python制作跳舞小熊的动态二维
首先,我们需要在终端安装Python的第三方库pip install myqr,否则直接运行会报错 ModuleNotFoundError: No module named 'MyQR' 然后前期工作 ...
最新文章
- 架构整洁之道学习笔记
- 01 | 顶层设计:微服务生态与 Spring Cloud Alibaba
- 介绍一个办法查TREX search的log
- 将一句话的单词进行倒置,标点符号不倒换。比如一句话:“i love you.”倒换后变为you. love i
- JavaFX官方教程(六)之带有JavaFX CSS的花式表单
- 求1+2+......+100的和
- Linux惊群效应详解(最详细的了吧)
- 哈佛推出这款PyTorch工具包,10行代码训练“AI药神”模型
- linux静态和动态路由英文,静态路由和动态路由的特点
- 如何在电脑上搭建一个私服,实现maven项目的上传和下载?
- Ant-编译构建(1)-HelloWorld
- Mathematica处理高斯光束的分布图像
- php网页代码字体大小,HTML网页字体大小的设置
- 动漫制作都用html5吗,怎么制作h5动画?
- 【限时删除】一个惊艳的神器,可全网爬取各种资源..........
- 终于搞定了stackoverflow的富文本编辑器pagedown
- MAE源代码理解 part1 : 调试理解法
- 陌陌6.0核心诉求:改变看脸社交
- srcollTop、clientHeight、scrollHeight详解
- go 调用winapi_Go调用Window SendARP() 方法
热门文章
- 【java的多态性】
- C++构造函数与析构函数
- Linux 集群时钟同步
- 关于骨骼动画及微软示例Skinned Mesh的解析
- JavaScript验证时间格式
- Java开发环境配置——Tomcat
- [Redux-Observable Unit Testing] Mocking an ajax request when testing epics
- 20170728上课笔记
- BZOJ4569: [Scoi2016]萌萌哒
- 2016.5.57—— Remove Duplicates from Sorted List