这5种炫酷的动态图,都是用Python实现的!

5种炫酷的数据可视动态图,用Python轻松实现 数据可以帮助我们描述这个世界、阐释自己的想法和展示自己的成果,但如果只有单调乏味的文本和数字,我们却往往能难抓住观众的眼球。而很多时候,一张漂亮的可视化图表就足以胜过千言万语。 本文将介绍 5 种基于 Plotly 的可视化方法,你会发现,原来可视化不仅可用直方图和箱形图,还能做得如此动态好看甚至可交互。 那么,Plotly 有哪些好处?Plotly 的整合能力很强:可与 Jupyter Notebook 一起使用,可嵌入网站,并且完整集成了 Dash——一种用于构建仪表盘和分析应用的出色工具。 启动 阅读详情

数据可以帮助我们描述这个世界、阐释自己的想法和展示自己的成果,但如果只有单调乏味的文本和数字,我们却往往能难抓住观众的眼球。而很多时候,一张漂亮的可视化图表就足以胜过千言万语。本文将介绍 5 种基于 Plotly 的可视化方法,你会发现,原来可视化不仅可用直方图和箱形图,还能做得如此动态好看甚至可交互。

对数据科学家来说,讲故事是一个至关重要的技能。为了表达我们的思想并且说服别人,我们需要有效的沟通。而漂漂亮亮的可视化是完成这一任务的绝佳工具。本文将介绍 5 种非传统的可视化技术,可让你的数据故事更漂亮和更有效。这里将使用 Python 的 Plotly 图形库,让你可以毫不费力地生成动画图表和交互式图表。

那么,Plotly 有哪些好处?Plotly 的整合能力很强:可与 Jupyter Notebook 一起使用,可嵌入网站,并且完整集成了 Dash——一种用于构建仪表盘和分析应用的出色工具。

启动

如果你还没安装 Plotly,只需在你的终端运行以下命令即可完成安装:

pip install plotly

安装完成后,就开始使用吧!

动画

在研究这个或那个指标的演变时,我们常涉及到时间数据。Plotly 动画工具仅需一行代码就能让人观看数据随时间的变化情况,如下图所示:

代码如下:

import plotly.express as px  
from vega_datasets import data  
df = data.disasters()  
df = df[df.Year > 1990]  
fig = px.bar(df,  
             y="Entity",  
             x="Deaths",  
             animation_frame="Year",  
             orientation='h',  
             range_x=[0, df.Deaths.max()],  
             color="Entity")  
# improve aesthetics (size, grids etc.)  
fig.update_layout(width=1000,  
                  height=800,  
                  xaxis_showgrid=False,  
                  yaxis_showgrid=False,  
                  paper_bgcolor='rgba(0,0,0,0)',  
                  plot_bgcolor='rgba(0,0,0,0)',  
                  title_text='Evolution of Natural Disasters',  
                  showlegend=False)  
fig.update_xaxes(title_text='Number of Deaths')  
fig.update_yaxes(title_text='')  
fig.show()

只要你有一个时间变量来过滤,那么几乎任何图表都可以做成动画。下面是一个制作散点图动画的例子:

import plotly.express as px  
df = px.data.gapminder()  
fig = px.scatter(  
    df,  
    x="gdpPercap",  
    y="lifeExp",  
    animation_frame="year",  
    size="pop",  
    color="continent",  
    hover_name="country",  
    log_x=True,  
    size_max=55,  
    range_x=[100, 100000],  
    range_y=[25, 90],  
  
    #   color_continuous_scale=px.colors.sequential.Emrld  
)  
fig.update_layout(width=1000,  
                  height=800,  
                  xaxis_showgrid=False,  
                  yaxis_showgrid=False,  
                  paper_bgcolor='rgba(0,0,0,0)',  
                  plot_bgcolor='rgba(0,0,0,0)')  

太阳图

太阳图(sunburst chart)是一种可视化 group by 语句的好方法。如果你想通过一个或多个类别变量来分解一个给定的量,那就用太阳图吧。

假设我们想根据性别和每天的时间分解平均小费数据,那么相较于表格,这种双重 group by 语句可以通过可视化来更有效地展示。

这个图表是交互式的,让你可以自己点击并探索各个类别。你只需要定义你的所有类别,并声明它们之间的层次结构(见以下代码中的 parents 参数)并分配对应的值即可,这在我们案例中即为 group by 语句的输出。

import plotly.graph_objects as go  
import plotly.express as px  
import numpy as np  
import pandas as pd  
df = px.data.tips()  
fig = go.Figure(go.Sunburst(  
    labels=["Female", "Male", "Dinner", "Lunch", 'Dinner ', 'Lunch '],  
    parents=["", "", "Female", "Female", 'Male', 'Male'],  
    values=np.append(  
        df.groupby('sex').tip.mean().values,  
        df.groupby(['sex', 'time']).tip.mean().values),  
    marker=dict(colors=px.colors.sequential.Emrld)),  
                layout=go.Layout(paper_bgcolor='rgba(0,0,0,0)',  
                                 plot_bgcolor='rgba(0,0,0,0)'))  
  
fig.update_layout(margin=dict(t=0, l=0, r=0, b=0),  
                  title_text='Tipping Habbits Per Gender, Time and Day')  
fig.show()  

现在我们向这个层次结构再添加一层:

为此,我们再添加另一个涉及三个类别变量的 group by 语句的值。

import plotly.graph_objects as go  
import plotly.express as px  
import pandas as pd  
import numpy as np  
df = px.data.tips()  
fig = go.Figure(go.Sunburst(labels=[  
    "Female", "Male", "Dinner", "Lunch", 'Dinner ', 'Lunch ', 'Fri', 'Sat',  
    'Sun', 'Thu', 'Fri ', 'Thu ', 'Fri  ', 'Sat  ', 'Sun  ', 'Fri   ', 'Thu   '  
],  
                            parents=[  
                                "", "", "Female", "Female", 'Male', 'Male',  
                                'Dinner', 'Dinner', 'Dinner', 'Dinner',  
                                'Lunch', 'Lunch', 'Dinner ', 'Dinner ',  
                                'Dinner ', 'Lunch ', 'Lunch '  
                            ],  
                            values=np.append(  
                                np.append(  
                                    df.groupby('sex').tip.mean().values,  
                                    df.groupby(['sex',  
                                                'time']).tip.mean().values,  
                                ),  
                                df.groupby(['sex', 'time',  
                                            'day']).tip.mean().values),  
                            marker=dict(colors=px.colors.sequential.Emrld)),  
                layout=go.Layout(paper_bgcolor='rgba(0,0,0,0)',  
                                 plot_bgcolor='rgba(0,0,0,0)'))  
fig.update_layout(margin=dict(t=0, l=0, r=0, b=0),  
                  title_text='Tipping Habbits Per Gender, Time and Day')  
  
fig.show()  

平行类别

另一种探索类别变量之间关系的方法是以下这种流程图。你可以随时拖放、高亮和浏览值,非常适合演示时使用。

代码如下:

import plotly.express as px  
from vega_datasets import data  
import pandas as pd  
df = data.movies()  
df = df.dropna()  
df['Genre_id'] = df.Major_Genre.factorize()[0]  
fig = px.parallel_categories(  
    df,  
    dimensions=['MPAA_Rating', 'Creative_Type', 'Major_Genre'],  
    color="Genre_id",  
    color_continuous_scale=px.colors.sequential.Emrld,  
)  
fig.show()  

平行坐标图

平行坐标图是上面的图表的连续版本。这里,每一根弦都代表单个观察。这是一种可用于识别离群值(远离其它数据的单条线)、聚类、趋势和冗余变量(比如如果两个变量在每个观察上的值都相近,那么它们将位于同一水平线上,表示存在冗余)的好用工具。

代码如下:

 import plotly.express as px  
from vega_datasets import data  
import pandas as pd  
df = data.movies()  
df = df.dropna()  
df['Genre_id'] = df.Major_Genre.factorize()[0]  
fig = px.parallel_coordinates(  
    df,  
    dimensions=[  
        'IMDB_Rating', 'IMDB_Votes', 'Production_Budget', 'Running_Time_min',  
        'US_Gross', 'Worldwide_Gross', 'US_DVD_Sales'  
    ],  
    color='IMDB_Rating',  
    color_continuous_scale=px.colors.sequential.Emrld)  
fig.show()

量表图和指示器

量表图仅仅是为了好看。在报告 KPI 等成功指标并展示其与你的目标的距离时,可以使用这种图表。

指示器在业务和咨询中非常有用。它们可以通过文字记号来补充视觉效果,吸引观众的注意力并展现你的增长指标。

 import plotly.graph_objects as go  
fig = go.Figure(go.Indicator(  
    domain = {'x': [0, 1], 'y': [0, 1]},  
    value = 4.3,  
    mode = "gauge+number+delta",  
    title = {'text': "Success Metric"},  
    delta = {'reference': 3.9},  
    gauge = {'bar': {'color': "lightgreen"},  
        'axis': {'range': [None, 5]},  
             'steps' : [  
                 {'range': [0, 2.5], 'color': "lightgray"},  
                 {'range': [2.5, 4], 'color': "gray"}],  
          }))  
fig.show()
---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

超详细的Python matplotlib 绘制动态图 复习回顾 在matplotlib模块中我们前面学习绘制如折线、柱状、散点、直方图等静态图形。我们都知道在matplotlib模块主要有三层脚本层为用户提供快捷的绘制图形方法,美工层接收到脚本层的命令后将绘制指令发送给后端,后端提供执行绘制操作、事件响应、图形渲染工作。具体的详情可见往期文章如下 在matplotlib模块中,除了以上静态图形的绘制,还提供Animation类支持绘制动态图制作 Python matplotlib 绘制散点图 还不收藏起来_编程简单学的博客-优快云博客这么详细的Pyth 阅读详情

相关推荐

JasperReport制作行内容合并的表格

效果图: 实现思路一: 交叉表 另一个思路: 普通表格 缺点:无法实现内容 垂直居中显示 准备工作 一、数据准备 DROP TABLE IF EXISTS `address_item_sex_value`; CREATE TABLE `address_item_sex_value` ( `id` int(11) NOT NULL AUTO_INCREM...

weixin_34148456的博客 2468

python绘制动图

python动图显示方法

qq_49438230的博客 2501

3D打印切片软件Cura及CuraEngine原理分析

引言         年初开始进入3D打印行业,受命以Cura为基础,研发一款自主的3D打印切片软件。         自主研发要取其长处,补其不足,首先自然是要搞清楚Cura到底做了什么,读Cura的代码是必需的。我一向都觉得比起自己写代码来,读别人的代码是一个漫又而痛苦的过程,读者的思想与写者总有偏差,往往又无法验证自己的猜想是否正确,只叹人脑不是电脑,无法把眼前的代码从头到尾执行一遍...

AiDiShengDeXiaoWu的博客 4423

Python 制作动态图

1. pyplot 动态效果 如果想得到动态绘制效果,可以使用 plt.pause(k) 每绘制一次就暂停 kms 实现动态效果: plt.figure() for i in range(N): # 放绘图代码 draw plt.pause(0.2) # delay plt.show() 比如下面的感知机: 2. 将绘图结果导出为 GIF 有时候我们并不满足于此,我们可能想得到 gif 动态图,一种办法是: 先把每一次绘制结果保存 再把所有结果连起来得到 gif 2.1 保存每一步的结果 首

我有两颗糖 1万+

二元交叉熵:分类模型概率校准的数学根基

二元交叉熵(BCE)是二分类任务中实现概率校准的核心损失函数,其本质源于最大似然估计与KL散度,确保模型输出具备真实可解释的概率意义。相比均方误差(MSE)或Hinge Loss,BCE强制优化预测分布与真实伯努利分布之间的信息差异,使p=0.8真正对应约80%的正例发生率,支撑风控、医疗、推荐等高信度场景的阈值决策。它不只影响训练收敛,更决定部署后概率的业务可信度——这正是Focal Loss等变体无法替代其基础地位的根本原因。理解BCE,就是理解分类模型如何从‘打分器’进化为‘概率契约签署者’。

congli3478的博客 1336

华为eNSP Pro实战:NE/CE设备SSH远程配置避坑指南

本文针对华为eNSP Pro用户在模拟多台NE路由器或CE交换机时遇到的浏览器卡顿问题,提供了详细的SSH远程配置避坑指南。通过对比浏览器与SSH客户端的资源占用和操作体验,文章详细阐述了为NE和CE设备配置SSH服务的关键步骤、命令差异及常见错误排查方法,旨在帮助用户提升实验效率,实现稳定高效的远程管理。

weixin_29196891的博客 224

让数据“动”起来:Python动态图表制作!

在读技术博客的过程中,我们会发现那些能够把知识、成果讲透的博主很多都会做动态图表。他们的图是怎么做的?难度大吗?这篇文章就介绍了 Python 中一种简单的动态图表制作方法。数据暴增的年代,数据科学家、分析师在被要求对数据有更深的理解与分析的同时,还需要将结果有效地传递给他人。如何让目标听众更直观地理解?当然是将数据可视化啊,而且最好是动态可视化。接触过数据可视化的同学应该对 Python 里的 Matplotlib 库并不陌生。

wly55690的博客 3766

【产品经理修炼之道】- 优惠券系统从入门到精通(二)

在电商平台中,优惠券的使用场景与频次都很高。那么如何做好一个优惠券系统呢?本文总结了相关流程和设计思路,希望对你有所帮助。上一篇与大家分享了架构中的前端应用、生命周期、优惠券管理中OpenAPI 、基础系统,今天继续与大家分享架构图中优惠券模板部分。

xiaoli8748的专栏 1292

chatgpt赋能python:Python如何绘制动态图

我们可以自定义动态图,使其更具有吸引力。本篇文章介绍了如何使用Python创建动态图形,并提供了相关的基本示例和自定义技巧。动态图形是一种演示数据和信息变化的强大方法,通过Matplotlib和其他绘图库,我们可以轻松创建各种类型的动态图并优化其外观和效果。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。

axuhsssssco的博客 975

社区版 ABAP MCP 能不能读取 SAP S/4HANA 公有云开发对象,我的判断是能试,但不能当成已被 SAP 背书的标准通道

文章摘要:当前存在多个社区项目(如mcp-abap-adt、mcp-abap-abap-adt-api等)通过包装ABAP ADT能力为MCP Server,使AI开发工具能读取ABAP对象。这些项目技术上依赖ADT HTTP API或SAP官方ADT language server,但针对SAP S/4HANA Cloud Public Edition的完整适配仍存在挑战。SAP官方已通过VS Code扩展提供ADT MCP能力,而社区方案在云环境下需遵循ABAP Cloud的严格限制,仅能访问已授权的开

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 89

Python在振动信号处理中的应用(一):振动信号消除多项式趋势项

文章目录一、概述二、最小二乘法去除趋势项原理三、python模块介绍3.1 scikitlearn简介(1)转化器(Transformer)(2)估计器(Estimator)3.2 线性回归LinearRegression3.3 多项式PolynomialFeatures3.4 工作流Pipeline四、python代码实现4.1 构造模拟信号4.2 编写去除趋势项主代码4.3 展示算法效果五、TIPS 一、概述   在振动测试过程中,传感器或采集设备由于自身性能问题或受环境干扰(如温度、供电等影响),容易

白银时代的博客 8578

超级炫酷的3D旋转动态图——Python代码实现

今天这篇文章我准备了很久,但是运行出来很值得。属于散漫闲谈,毕竟涉及到一个浪漫的思想系统,故建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。或许,雨过云收,神驰的天地更清朗.......

weixin_46039719的博客 6373

【乐鑫】唤醒词修改方法

乐鑫科技的语音识别模块(如ESP-SR)支持自定义唤醒词,但需通过官方工具链完成。

以实战经验介绍行业知识 828

python炫酷特效代码简单,python制作的炫酷动画

urtle.setup(a,b,c,d)a,b两个参数分别控制画布的宽和高,c,d属性控制画布的位置;turtle.screesize(a,b,c)a,b控制画布的宽和高,C控制画布的颜色;例如:turtle.setup(800,400,200,200)//创建一个宽为800像素高为400像素,坐标为(200,200)的画布梁肆羡turtle.screensize(800,400,'green')//创建一个宽为800像素,高为400像素,颜色为绿色的雹派画布。

chatgpt001的博客 4512

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

用Python实现几种炫酷的动态图

数据可以帮助我们描述这个世界、阐释自己的想法和展示自己的成果,但如果只有单调乏味的文本和数字,我们却往往能难抓住观众的眼球。这是一种可用于识别离群值(远离其它数据的单条线)、聚类、趋势和冗余变量(比如如果两个变量在每个观察上的值都相近,那么它们将位于同一水平线上,表示存在冗余)的好用工具。你只需要定义你的所有类别,并声明它们之间的层次结构(见以下代码中的 parents 参数)并分配对应的值即可,这在我们案例中即为 group by 语句的输出。为了表达我们的思想并且说服别人,我们需要有效的沟通。

csdn1561168266的博客 1483

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 用例子来看看Python 3.12 到底更新了啥?
下一篇: 入门Pytest:优雅地进行Python测试
Python_P叔
博客等级 码龄3年 5454粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值