你可能还不知道,这5种动态炫酷图,其实也是用Python画的

基于Python的动态炫酷圣诞树实现技术解析 本文将深入探讨一个使用Python和Pygame库实现的动态炫酷圣诞树项目。该项目通过多种图形元素的组合,如雪花、灯光、装饰物等,创造出一个充满节日氛围的圣诞场景。项目不仅展示了Pygame在2D图形绘制方面的强大能力,还融合了多种动画效果和交互功能。本文详细解析了一个基于Python和Pygame的动态炫酷圣诞树项目的实现技术。该项目综合运用了多种图形元素和动画效果,展示了Pygame在2D图形绘制和动画处理方面的强大能力。 阅读详情

选自TowardsDataScience    作者:Liana Mehrabyan

机器之心编译     参与:Panda

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

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

那么,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()

原文链接:https://towardsdatascience.com/5-visualisations-to-level-up-your-data-story-e131759c2f41

(完)


用python做好看的动态图像,怎样用python绘制动图 frames参数可以理解是动画中帧的数量,比如设置为一个整数50,那么在每一次间隔后,都会传递一个整数给func,传递的数字是当前帧的索引,通常情况是递增。如果我们要实现动态图表,其实有多种方式,因为matplotlib产生的图表其实就是一帧帧图片,麻烦的方式是我们用循环产生多张图片,然后将图片组合起来生成动画。init_func:初始函数,这是可选项,即动画图表开始时的函数,其返回格式与func是一样的。repeat:标志位,如果设为True,则动画重复,反之,设为False即可。 阅读详情

相关推荐

15种独一无二的创新数据可视化方式

全文共5489字,预计学习时长11分钟可视化能解答那些尚未发现的问题。本·施耐德曼(Ben Shneiderman)掌握数据可视化技术会打开新世界的大门,带来更多机会。精...

读芯术的博客 1685

用Python画的,5 种非传统的可视化技术,超炫酷的动态图

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

qq_46614154的博客 2956

5种炫酷的数据可视动态图,用Python轻松实现

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

m0_64355682的博客 2157

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万+

使用Python绘制动态可视化图表

动态可视化图表是一种强大的工具,可以帮助我们以交互方式展示数据的变化和趋势。在Python中,有多个库可以用于创建动态可视化图表,其中包括Matplotlib和Plotly。在本文中,我们将详细介绍如何使用这两个库来创建动态可视化图表,并提供相应的源代码供参考。本文介绍了如何使用Python中的Matplotlib和Plotly库创建动态可视化图表。Plotly是一个交互式可视化库,可以创建各种类型的动态图表,包括折线图、散点图、柱状图等。接下来,我们初始化了一个空的折线图,并设置了坐标轴的范围。

持续更新 645

Spring Boot应用Docker化实战:从Dockerfile编写到镜像推送完整流程

本文详细介绍了将Spring Boot应用Docker化的完整实战流程。从环境准备、项目审视,到编写高效且安全的Dockerfile,重点讲解了多阶段构建、镜像层优化、Spring Boot分层JAR等核心技巧,并涵盖了镜像构建、验证、调试以及最终推送至仓库并集成CI/CD的最佳实践,帮助开发者构建生产级Docker镜像。

butter的博客 1023

Python|十五个超级炫酷代码

​​​​​​​ 视频是动态的,不信你运行试试。 2 温柔的狮子 4 520+爱心 5 鲜艳的玫瑰 6 一颗小爱心 7 一个呆萌的皮卡丘 8 小猪佩奇 9 放烟花 10 小呆呆小黄人 11 十里桃花飘落 12 炸死小坏蛋 13 哆啦A梦 14 一个微信表情包 15 秀死他.........

weixin_46039719的博客 10万+

S7-PLCSIM Advanced V3.0虚拟PLC组态下载失败?手把手教你解决IP地址冲突问题

本文针对S7-PLCSIM Advanced V3.0组态下载失败问题,深入剖析了IP地址冲突的根本原因。通过对比博途项目PLC、虚拟网卡及本机物理网卡的IP配置,提供了清晰的排查流程与标准化解决方案,帮助用户快速修复网络可达性问题,确保虚拟PLC仿真顺利进行。

weixin_29306261的博客 193

Python|十五个超级炫酷的代码

视频是动态的,不信你运行试试。 2 温柔的狮子 4 520+爱心 5 鲜艳的玫瑰 6 一颗小爱心 7 一个呆萌的皮卡丘 8 小猪佩奇 9 放烟花 10 小呆呆小黄人 11 十里桃花飘落 12 炸死小坏蛋 13 哆啦A梦 14 一个微信表情包 15 秀死他......

weixin_61181717的博客 17万+

ScottPlot vs LiveCharts:WPF图表库性能对比与MVVM适配方案

本文深度对比了WPF图表库ScottPlot与LiveCharts在性能与MVVM架构适配上的表现。通过十万级数据点的基准测试,ScottPlot在渲染速度与内存占用上优势显著。文章重点探讨了两种库在MVVM模式下的集成方案,为开发者根据项目需求(如实时监控或快速原型)进行技术选型提供了实战指导。

lll78的博客 245

保姆级教程:用Seurat 5.0.1搞定单细胞测序数据从质控到细胞注释的全流程

本文提供了一份详细的Seurat 5.0.1单细胞测序数据分析教程,涵盖从数据质控到细胞注释的全流程。通过R代码示例和可视化分析,帮助用户掌握单细胞RNA测序数据处理的核心技术,包括数据标准化、降维聚类和细胞类型注释,适用于生物信息学研究和临床数据分析。

weixin_29067143的博客 197

这5种动态炫酷图,用Python就可以画!

点击上方“AI遇见机器学习”,选择“星标”公众号重磅干货,第一时间送达作者丨Liana Mehrabyan转自| 机器之心 参与 | Panda数据可以帮助我们描述这个世界、...

weixin_36896856的博客 1778

YOLOv11【第三章:高阶应用与落地篇·第1节】一文搞懂,YOLOv11-Seg 实例分割:Mask 原型生成与系数预测原理解析!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 1249

经纬度画轨迹图_实战Python制作炫酷的个人3D动态足迹图

今天给大家带来一篇3D个人足迹图制作教程,先看看成果图:下面给大家详细介绍一下制作步骤:一、准备足迹城市数据因为本次用pyecharts画3D足迹图的数据接口是列表形式:所以我们要把城市的经纬度信息找出来,如果城市比较少可以手动搜索填写,如果城市比较多的话可以做个小爬虫程序,这里给大家推荐1个数据接口https://apis.map.qq.com/jsapi?qt=geoc&ad...

weixin_39664696的博客 2757

《AI 时代FPGA的全栈开发实战・从入门到精通》专栏启动说明

《智驱FPGA》专栏面向初学者,聚焦AI时代FPGA开发新范式,以ChatGPT、ICCoder2.0等工具全程辅助,覆盖纯逻辑、Zynq软硬协同、端侧AI加速、高速接口等核心方向。通过126节图文+14个实战项目,传授AI生成代码、Prompt工程、时序优化等能力,助力学员从零成长为具备工程竞争力的FPGA工程师,结业可独立完成完整项目并写入简历。

现任某外企的算法工程师!专注于人工智能、嵌入式、FPGA、论文写作四大主题的教程和经验分享!辅导请➕v :sci666888999 172

2024全国村级行政边界数据

五级行政区划:村边界数据产品涵盖五级行政区划:(一级行政区)省级行政区共31个其中:(台湾、香港、澳门除外);(二级行政区)地级行政区共334个其中:7个地区、3个盟、30个自治州、294个地级市;(三级行政区)县级行政区共2851个其中:1355个县、117个自治县、49个旗、3个自治旗、363个县级市、962个市辖区、1个林区、1个特区;(四级行政区)乡级行政区共40497个其中:11626个乡、1034个民族乡、20117个镇、7566个街道、151个苏木、1个民族苏木、2个县辖区公所;

J_Giser的博客 3232

这5种动态炫酷图,用Python可以这样画啊!

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

weixin_46606335的博客 1166

【JCR一区级】鱼鹰算法OOA-CNN-LSTM-Attention故障诊断分类预测【含Matlab源码 5711期】

鱼鹰算法OOA-CNN-LSTM-Attention故障诊断分类预测 完整代码和数据,方可运行;数据可直接替换,适合小白!可提供运行操作视频!

订阅付费专栏Matlab(奶茶价版)或下载付费资源,可赠送奶茶价版付费专栏指定代码1份; 3601

这5种动态炫酷图,也是用Python画的

点击上方“Python高校”,关注文末干货立马到手选自TowardsDataScience 作者:Liana Mehrabyan机器之心编译 参与:Panda数据可以帮助...

Python爬虫和机器学习专栏 889

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

5款拖拽式Python GUI生成器助你快速打造炫酷界面

通过使用这些工具,开发者可以摆脱繁琐的代码编写,快速构建出美观、功能强大的GUI应用程序,提高开发效率,加速项目进度。: Tkinter Designer通过Figma API解析设计文件,并将所有元素、布局、样式和动画精准地转化为Tkinter代码,无需编写一行代码就能将Figma设计转换为可运行的Tkinter应用。: 提供丰富的控件,包括按钮、标签、文本框、列表框、树形控件等,以及布局管理器、信号与槽机制等功能,帮助开发者构建复杂且功能强大的GUI应用程序。

weixin_53707653的博客 3万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

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

weixin_46039719的博客 6373

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

这 5 种动态炫酷图也是用 Python 画的

作者:Liana Mehrabyan来源:机器之心数据可以帮助我们描述这个世界、阐释自己的想法和展示自己的成果,但如果只有单调乏味的文本和数字,我们却往往能难抓住观众的眼球。而很多时候,...

Python小二 758
上一篇: 记一次 Python Web 接口优化,性能提升25倍!
下一篇: 面向对象编程,再见!
Wang_AI
博客等级 码龄12年 991粉丝 162原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值