怎么用Python绘制动态可视化图表
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇"怎么用Python绘制动态可视化图表"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2025年01月18日怎么用Python绘制动态可视化图表
这篇"怎么用Python绘制动态可视化图表"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"怎么用Python绘制动态可视化图表"文章吧。
一、安装相关的模块
首先第一步的话我们需要安装相关的模块,通过pip
命令来安装
pip install gif
另外由于gif模块之后会被当做是装饰器放在绘制可视化图表的函数上,主要我们依赖的还是Python当中绘制可视化图表的matplotlib
、plotly
、以及altair
这些模块,因此我们还需要下面这几个库
pip install "gif[altair]" pip install "gif[matplotlib]"pip install "gif[plotly]"
二、gif和matplotlib的结合
我们先来看gif
和matplotlib
模块的结合,我们先来看一个简单的例子,
代码如下:
import randomfrom matplotlib import pyplot as pltimport gifx = [random.randint(0, 100) for _ in range(100)]y = [random.randint(0, 100) for _ in range(100)]gif.options.matplotlib["dpi"] = 300@gif.framedef plot(i): xi = x[i*10:(i+1)*10] yi = y[i*10:(i+1)*10] plt.scatter(xi, yi) plt.xlim((0, 100)) plt.ylim((0, 100))frames = []for i in range(10): frame = plot(i) frames.append(frame)gif.save(frames, 'example.gif', duration=3.5, unit="s", between="startend")
output:
代码的逻辑并不难理解,首先我们需要定义一个函数来绘制图表并且带上gif
装饰器,接着我们需要一个空的列表,通过for循环将绘制出来的对象放到这个空列表当中然后保存成gif格式的文件即可。
三、gif和plotly的结合
除了和matplotlib
的联用之外,gif
和plotly
之间也可以结合起来用
代码如下:
import randomimport plotly.graph_objects as goimport pandas as pdimport gifdf = pd.DataFrame({ 't': list(range(10)) * 10, 'x': [random.randint(0, 100) for _ in range(100)], 'y': [random.randint(0, 100) for _ in range(100)]})@gif.framedef plot(i): d = df[df['t'] == i] fig = go.Figure() fig.add_trace(go.Scatter( x=d["x"], y=d["y"], mode="markers" )) fig.update_layout(width=500, height=300) return figframes = []for i in range(10): frame = plot(i) frames.append(frame)gif.save(frames, 'example_plotly.gif', duration=100)
output:
整体的代码逻辑和上面的相似,这里也就不做具体的说明了
四、matplotlib多子图动态可视化
上面绘制出来的图表都是在单张图表当中进行的,那当然了我们还可以在多张子图中进行动态可视化的展示,
代码如下:
# 读取数据df = pd.read_csv('weather_hourly_darksky.csv')df = df.rename(columns={"time": "date"})@gif.framedef plot(df, date): df = df.loc[df.index[0]:pd.Timestamp(date)] fig, (ax1, ax2, ax3) = plt.subplots(3, figsize=(10, 6), dpi=100) ax1.plot(df.temperature, marker='o', linestyle='--', linewidth=1, markersize=3, color='g') maxi = round(df.temperature.max() + 3) ax1.set_xlim([START, END]) ax1.set_ylim([0, maxi]) ax1.set_ylabel('TEMPERATURE', color='green') ax2.plot(df.windSpeed, marker='o', linestyle='--', linewidth=1, markersize=3, color='b') maxi = round(df.windSpeed.max() + 3) ax2.set_xlim([START, END]) ax2.set_ylim([0, maxi]) ax2.set_ylabel('WIND', color='blue') ax3.plot(df.visibility, marker='o', linestyle='--', linewidth=1, markersize=3, color='r') maxi = round(df.visibility.max() + 3) ax3.set_xlim([START, END]) ax3.set_ylim([0, maxi]) ax3.set_ylabel('VISIBILITY', color='red')frames = []for date in pd.date_range(start=df.index[0], end=df.index[-1], freq='1M'): frame = plot(df, date) frames.append(frame)gif.save(frames, "文件名称.gif", duration=0.5, unit='s')
output:
五、动态气泡图
最后我们用plotly
模块来绘制一个动态的气泡图,
代码如下:
import gifimport plotly.graph_objects as goimport numpy as npnp.random.seed(1)N = 100x = np.random.rand(N)y = np.random.rand(N)colors = np.random.rand(N)sz = np.random.rand(N) * 30layout = go.Layout( xaxis={'range': [-2, 2]}, yaxis={'range': [-2, 2]}, margin=dict(l=10, r=10, t=10, b=10))@gif.framedef plot(i): fig = go.Figure(layout=layout) fig.add_trace(go.Scatter( x=x[:i], y=y[:i], mode="markers", marker=go.scatter.Marker( size=sz[:i], color=colors[:i], opacity=0.6, colorscale="Viridis" ) )) fig.update_layout(width=500, height=300) return figframes = []for i in range(100): frame = plot(i) frames.append(frame)gif.save(frames, "bubble.gif")
output:
以上就是关于"怎么用Python绘制动态可视化图表"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
图表
动态
可视化
代码
模块
内容
函数
文件
文章
气泡
知识
篇文章
逻辑
先来
相似
之间
价值
例子
名称
命令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
东奥会网络安全卫士
山西it 软件开发品质售后无忧
网络安全员的学历要求
全国统一数据库网站
快网快讯网络技术有限公司
web服务器连接方式
河南省助享互联网科技
上海挖煤网络技术
网络安全主动防御
龙岗区网络技术进出口平台
数据库plsql查询修改连接数
j数据库交互实验步骤
瑞幸咖啡软件开发工作怎么样
5g网络技术介绍ppt
服务器时间转换
数据库输出文档类型
链接steam服务器
网络安全画报小学生
华中科技大学 互联网
当代人学习网络安全知识是因为
东奥会网络安全卫士
广州佛山有什么软件开发学校
ipad收件服务器名字
政法委切实维护网络安全
网络安全员特长
哪些行为是危害网络安全的活动
聊天内容会留在服务器上吗
jvav软件开发好学吗
u盘引导浪潮服务器
四范式定义数据库