Python matplotlib 实时数据动画

简介: Python matplotlib 实时数据动画

213a044b965a47c0800340a4cac22cdf.gif


一、实时数据可视化的数据准备



import pandas as pd 
import matplotlib.pyplot as plt 
# 设置一般的样例数据
x=[0,1,2,3,4] # x轴数据
y=[0,1,2,3,4] # y轴数据
# 设置多维数据
dev_x=[25,26,27,28,29,30] # 开发者的年龄
dev_y=[7567,8789,8900,11560,16789,25231] #收入情况
py_dev_y=[5567,6789,9098,15560,20789,23231] # python开发者
js_dev_y=[6567,7789,8098,12356,14789,20231] # java开发者
devsalary=pd.DataFrame([dev_x,dev_y,py_dev_y,js_dev_y])


01.设置图表主题样式


之前用的都是经典样式:

plt.style.use('classic')
plt.plot(x,y)

9792f56f26984d83a13282a44ddf06f3.png

现在换成538样式:

plt.style.use('fivethirtyeight') # 538统计样式
from IPython.display import HTML # 在实现动态的过程中必须引入的库
plt.plot(x,y)

e41c54eb6596423594028326862d5e8e.png


02 使用样例数据


import random
from itertools import count
index=count()
x1=[]
y1=[]
x1.append(next(index))
y1.append(random.randint(0,50))
plt.plot(x1,y1)

先来试试手动的效果:

5ea065eee11e4c788732b1b2de14ea2e.gif

该效果即我们要实现的动画。

def animate(i):
    x1.append(next(index))
    y1.append(random.randint(0,50))
    plt.plot(x1,y1)
from matplotlib.animation import FuncAnimation
ani=FuncAnimation(plt.gcf(),animate,interval=1000) # interval=1000代表时间间隔,数值越小,则时间间隔越短
HTML(ani.to_jshtml())

64299f7bc36a4656a8b1934cdd11838f.gif

上面的视频是演示数据的生成过程,会发现每次变化的时候颜色都会变化。

在视频底下还有一张完整的图片,表示在时间节点之中Python生成的序列数:

5ca0bf6398434ff6bdb73144324d8af6.png

1ad51281fc3e4306be864b9e1945a088.png

如果想要每次变化的时候图像都在原有基础上变化,则使用如下:

plt.cla()

2238ddb0b09e44d08c7572463305e6a7.png

def animate(i):
    x1.append(next(index))
    y1.append(random.randint(0,50))
    plt.cla() #每次变化的时候都是在原有基础上改变 
    plt.plot(x1,y1)
9d72f1cded3f4a249c9ce09ee2d1d6bd.gif

二、使用电影票房数据制作动画



动态实时的数据往往和时间轴有关联,本次使用的数据: cnboo1.xlsx

我放在我的码云,需要的请移步 :cnboo1.xlsx

import pandas as pd 
cnbodf=pd.read_excel('cnboo1.xlsx')
cnbodfsort=cnbodf.sort_values(by=['BO'],ascending=False)
def mkpoints(x,y):
    return len(str(x))*(y/25)-3
cnbodfsort['points']=cnbodfsort.apply(lambda x:mkpoints(x.BO,x.PERSONS),axis=1)
cnbodfgb=cnbodfsort.groupby("TYPE").mean(["bo","prices","persons","points"])
cnbodfsort['type1']=cnbodfsort['TYPE'].apply(lambda x:x.split("/")[0])
cnbodfgb=cnbodfsort.groupby(["type1"])["ID","BO","PRICE","PERSONS","points"].mean()
cnbodfgbsort=cnbodfgb.sort_values("BO",ascending=False)

d337b0b4e0704aeda00bb47da5c9e7e8.png


x=cnbodfsort['PERSONS']
y=cnbodfsort['PRICE']
plt.plot(x,y)

当我们分别以人数和电影票价格作为x和y轴的数据是,可以看到数据是较为紊乱的:

6a3fd3e1d988410186244529275f6e96.png

而动态实时的数据线往往是和时间有关联的。

因此我们需要把数据进行重新定义。

y1=y.to_list()
X1=x.to_list()
def animate(i):
    x1.append(next(index))
    y1.append(y[random.randint(1,49)]) # 表示在50条电影数据中随机选择一条
    plt.cla() #每次变化的时候都是在原有基础上改变 
    plt.plot(x1,y1)
x1=[]
y1=[]
ani=FuncAnimation(plt.gcf(),animate,interval=1000)
HTML(ani.to_jshtml())

最终呈现的效果如下:

b6aefce1a6c84e6eb6c4204f9cb51c93.gif


相关文章
|
11天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能数据隐私保护
使用Python实现深度学习模型:智能数据隐私保护 【10月更文挑战第3天】
40 0
|
9天前
|
数据处理 Python
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
这篇文章介绍了如何使用Python读取Excel文件中的数据,处理后将其保存为txt、xlsx和csv格式的文件。
27 3
Python实用记录(十):获取excel数据并通过列表的形式保存为txt文档、xlsx文档、csv文档
|
9天前
|
计算机视觉 Python
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
这篇文章介绍了如何使用Python的OpenCV库将多张图片合并为一张图片显示,以及如何使用matplotlib库从不同txt文档中读取数据并绘制多条折线图。
29 3
Python实用记录(九):将不同的图绘制在一起、将不同txt文档中的数据绘制多条折线图
|
10天前
|
数据可视化 算法 Python
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
本文介绍了如何利用Python脚本结合动态模态分解(DMD)技术,分析从OpenFOAM模拟中提取的二维切片数据,以深入理解流体动力学现象。通过PyVista库处理VTK格式的模拟数据,进行POD和DMD分析,揭示流场中的主要能量结构及动态特征。此方法为研究复杂流动系统提供了有力工具。
22 2
基于OpenFOAM和Python的流场动态模态分解:从数据提取到POD-DMD分析
|
6天前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
25 2
|
7天前
|
JSON 安全 数据安全/隐私保护
深度剖析:Python如何运用OAuth与JWT,为数据加上双保险🔐
【10月更文挑战第10天】本文介绍了OAuth 2.0和JSON Web Tokens (JWT) 两种现代Web应用中最流行的认证机制。通过使用Flask-OAuthlib和PyJWT库,详细展示了如何在Python环境中实现这两种认证方式,从而提升系统的安全性和开发效率。OAuth 2.0适用于授权过程,JWT则简化了认证流程,确保每次请求的安全性。结合两者,可以构建出既安全又高效的认证体系。
23 1
|
13天前
|
数据采集 存储 监控
如何使用 Python 爬取商品数据
如何使用 Python 爬取京东商品数据
27 3
|
13天前
|
数据采集 机器学习/深度学习 数据挖掘
数据也需SPA?Python转换大法,给你的数据做个全身放松SPA!
【10月更文挑战第4天】在数字化时代,数据犹如企业的血液,贯穿于各项业务之中。就像人需要定期SPA恢复活力,数据也需要“转换大法”来优化结构和提升质量,从而更好地支持决策分析与机器学习。本文探讨了如何使用Python进行数据SPA,包括理解需求、数据清洗、格式转换及聚合分析等步骤。通过Python强大的Pandas库,我们可以轻松完成缺失值填充、重复记录删除等任务,并实现数据格式的标准化,确保数据更加整洁、有序,助力高效分析与决策。为企业数据注入新的活力,迎接更多挑战。
17 1
|
14天前
|
数据采集 存储 监控
如何使用 Python 爬取京东商品数据
如何使用 Python 爬取京东商品数据
23 2
|
5天前
|
数据可视化 定位技术 Python
Python数据可视化--Matplotlib--入门
Python数据可视化--Matplotlib--入门
11 0