怎么用Python绘制动态可视化图表
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇"怎么用Python绘制动态可视化图表"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这
千家信息网最后更新 2025年11月09日怎么用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安全错误
数据库的锁怎样保障安全
开源分布数据库
软件开发方法学 研究方向
实用计算机网络技术
数据库连接加号
坚持网络安全与信息化并重
网络技术培训班交流发言材料
闵行区通信网络技术报价
网络安全工作应急处理预案
dread hunger服务器端口
汉南软件开发中心
软件开发人员不适合干什么
网络技术挑战赛a类项目
上海电脑软件开发怎么样
江西混合现实软件开发
少儿网络安全主题板报
爱站网收集数据库
2021年中国北京网络安全年会
第一届国家网络安全宣传
学软件开发去哪里比较好
从事网络技术的大学
软件开发首付款做什么科目
金州租房网络安全
幼儿园网络安全教育宣传活动
数据库连接加号
网络安全手抄报不超一百字
服务器 css
微网站服务器
网络安全风险感知
自助缴费机软件开发
魂2服务器关了