百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

可视化实战 | 让你的数据动起来

bigegpt 2025-03-05 13:35 13 浏览

我们经常在一些网站或数据新闻中看到类似下面这种很酷炫的数据可视化图表。

如果您也想亲自制作属于自己的数据动图,那么下面,跟图灵君一起get详细的实战教程吧!

一、gganimate简介

包的名称起的就非常直接,gg-ggplot2,animate-让...动起来。因此gganimate是一款基于ggplot2的动态可视化扩展包,简单来说就是将ggplot2绘图对象转为gif动图的形式,可以让抽象的数理理论更加形象化。

gganimate的本质思想非常简单,就是将ggplot2对象进行动态化, gganimate()特殊之处在于在除了为绘图提供x,y以及color,size这样的美学映射之外,还必须提供一个所谓的frame映射,所谓的frame映射,其实就是动画的时间轴。比如说我们想绘制我国人口随时间变化的一个ggplot2动态图,那么这个时间就是 frame映射。

gganimate的主要函数:

transition _ *() :定义了数据应该如何展开动画关系。

view _ *() :定义坐标比例如何随着动画更改而变化

shadow _ *() :定义如何在给定的时间点呈现来自其他时间点的数据

enter_*()/ exit _ *() :定义新数据应如何显示以及旧数据在动画过程中应如何消失。

ease_aes() :定义过渡期间应该如何切换

二、需要的包和数据

install.packages('ggplot2')install.packages('gganimate')install.packages('gapminder')library(ggplot2)library(gganimate)library(gapminder)

我们主要使用gapminder包中的自带数据,包括不同国家,不同时间的GDP、人口、人均寿命。来看看数据结构

head(gapminder)

countrycontinentyearlifeExppopgdpPercapAfghanistanAsia195228.88425333779.AfghanistanAsia195730.39240934821.AfghanistanAsia196232.010267083853.AfghanistanAsia196734.011537966836.AfghanistanAsia197236.113079460740.AfghanistanAsia197738.414880372786.

三、绘图实例

首先绘制一张静态图,以GDP为X轴,人均寿命为Y轴,人口数量作为气泡的大小,颜色呈现大洲

ggplot(data = gapminder,aes(x=gdpPercap, y=lifeExp, size = pop, colour = continent))+geom_point(show.legend = FALSE, alpha =0.9)+scale_x_log10()+labs(x ="每个国家的GPD", y ="每个国家的寿命")

按年度进行动画展示,只需要增加transition_time(year)即可,并设置标签变量:frame_time,即可得到下面的图形

ggplot(data = gapminder,aes(x=gdpPercap, y=lifeExp, size = pop, colour = continent))+geom_point(show.legend = FALSE, alpha =0.9)+scale_x_log10()+transition_time(year)+labs(title ="年份: {frame_time}",x ="每个国家的GPD", y ="每个国家的寿命")

要横纵随着时间而变化,只要加入view_follow(fixed_y = TRUE)即可。

ggplot(data = gapminder,aes(x=gdpPercap, y=lifeExp, size = pop, colour = continent))+geom_point(show.legend = FALSE, alpha =0.9)+scale_x_log10()+transition_time(year)+labs(title ="年份: {frame_time}",x ="每个国家的GPD", y ="每个国家的寿命")+view_follow(fixed_y = TRUE)

按不同的大洲来画分面图,要加个分面函数facet_wrap()

给图片加个尾巴

ggplot(data = gapminder,aes(x=gdpPercap, y=lifeExp, size = pop, colour = continent))+geom_point(show.legend = FALSE, alpha =0.9)+scale_x_log10()+transition_time(year)+labs(title ="年份: {frame_time}",x ="每个国家的GPD", y ="每个国家的寿命")+shadow_wake(wake_length =0.1, alpha =0.95)

这样是不是看起来看更酷炫

我们来画个箱线图看看,图中可以看到,每个大洲的寿命分布,并且随着时间的推移,都在逐步提高,非常明显的表达实际情况的变化

ggplot(data = gapminder, aes(x=continent, y=lifeExp,fill=continent,alpha=0.95))+geom_boxplot(show.legend = FALSE)+transition_time(year)+labs(x ="大洲", y ="寿命分布",title ="年份: {frame_time}")

要让数据逐渐出现,加transition_reveal()函数即可,我们使用一个叫airquality的数据集,说明5月到9月之间每天气温的变化。

ggplot(airquality, aes(Day, Temp, group = Month,colour=as.factor(Month))) +geom_line(show.legend = FALSE) +transition_reveal(Day)

再加上一个开头的点点,更有感觉

ggplot(airquality, aes(Day, Temp, group = Month,colour=as.factor(Month))) +geom_line(show.legend = FALSE) +geom_point(colour = 'red', size = 3) +transition_reveal(Day

如果要保持小点点不消失,加上一个分组就可以了

ggplot(airquality, aes(Day,Temp,group=Month))+geom_line()+geom_point(aes(group= seq_along(Day)))+scale_color_viridis_d()+geom_point(colour ='red', size =3)+transition_reveal(Day)

以上就是主要的一些用法,当然动画的方式还有很多种,transition_components、transition_events、transition_filter、transition_manual等。

相关推荐

方差分析简介(方差分析通俗理解)

介绍方差分析(ANOVA,AnalysisofVariance)是一种广泛使用的统计方法,用于比较两个或多个组之间的均值。单因素方差分析是方差分析的一种变体,旨在检测三个或更多分类组的均值是否存在...

正如404页面所预示,猴子正成为断网元凶--吧嗒吧嗒真好吃

吧嗒吧嗒,绘图:MakiNaro你可以通过加热、冰冻、水淹、模塑、甚至压溃压力来使网络光缆硬化。但用猴子显然是不行的。光缆那新挤压成型的塑料外皮太尼玛诱人了,无法阻挡一场试吃盛宴的举行。印度政府正...

Python数据可视化:箱线图多种库画法

概念箱线图通过数据的四分位数来展示数据的分布情况。例如:数据的中心位置,数据间的离散程度,是否有异常值等。把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)...

多组独立(完全随机设计)样本秩和检验的SPSS操作教程及结果解读

作者/风仕在上一期,我们已经讲完了两组独立样本秩和检验的SPSS操作教程及结果解读,这期开始讲多组独立样本秩和检验,我们主要从多组独立样本秩和检验介绍、两组独立样本秩和检验使用条件及案例的SPSS操作...

方差分析 in R语言 and Excel(方差分析r语言例题)

今天来写一篇实际中比较实用的分析方法,方差分析。通过方差分析,我们可以确定组别之间的差异是否超出了由于随机因素引起的差异范围。方差分析分为单因素方差分析和多因素方差分析,这一篇先介绍一下单因素方差分析...

可视化:前端数据可视化插件大盘点 图表/图谱/地图/关系图

前端数据可视化插件大盘点图表/图谱/地图/关系图全有在大数据时代,很多时候我们需要在网页中显示数据统计报表,从而能很直观地了解数据的走向,开发人员很多时候需要使用图表来表现一些数据。随着Web技术的...

matplotlib 必知的 15 个图(matplotlib各种图)

施工专题,我已完成20篇,施工系列几乎覆盖Python完整技术栈,目标只总结实践中最实用的东西,直击问题本质,快速帮助读者们入门和进阶:1我的施工计划2数字专题3字符串专题4列表专题5流程控制专题6编...

R ggplot2常用图表绘制指南(ggplot2绘制折线图)

ggplot2是R语言中强大的数据可视化包,基于“图形语法”(GrammarofGraphics),通过分层方式构建图表。以下是常用图表命令的详细指南,涵盖基本语法、常见图表类型及示例,适合...

Python数据可视化:从Pandas基础到Seaborn高级应用

数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...

Python 数据可视化常用命令备忘录

本文提供了一个全面的Python数据可视化备忘单,适用于探索性数据分析(EDA)。该备忘单涵盖了单变量分析、双变量分析、多变量分析、时间序列分析、文本数据分析、可视化定制以及保存与显示等内容。所...

统计图的种类(统计图的种类及特点图片)

统计图是利用几何图形或具体事物的形象和地图等形式来表现社会经济现象数量特征和数量关系的图形。以下是几种常见的统计图类型及其适用场景:1.条形图(BarChart)条形图是用矩形条的高度或长度来表示...

实测,大模型谁更懂数据可视化?(数据可视化和可视化分析的主要模型)

大家好,我是Ai学习的老章看论文时,经常看到漂亮的图表,很多不知道是用什么工具绘制的,或者很想复刻类似图表。实测,大模型LaTeX公式识别,出乎预料前文,我用Kimi、Qwen-3-235B...

通过AI提示词让Deepseek快速生成各种类型的图表制作

在数据分析和可视化领域,图表是传达信息的重要工具。然而,传统图表制作往往需要专业的软件和一定的技术知识。本文将介绍如何通过AI提示词,利用Deepseek快速生成各种类型的图表,包括柱状图、折线图、饼...

数据可视化:解析箱线图(box plot)

箱线图/盒须图(boxplot)是数据分布的图形表示,由五个摘要组成:最小值、第一四分位数(25th百分位数)、中位数、第三四分位数(75th百分位数)和最大值。箱子代表四分位距(IQR)。IQR是...

[seaborn] seaborn学习笔记1-箱形图Boxplot

1箱形图Boxplot(代码下载)Boxplot可能是最常见的图形类型之一。它能够很好表示数据中的分布规律。箱型图方框的末尾显示了上下四分位数。极线显示最高和最低值,不包括异常值。seaborn中...