首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

r语言绘制动态统计图:绘制世界各国的人均GDP,出生时的预期寿命和人口气泡图动画动态gif图

全文链接:http://tecdat.cn/?p=7994

使用的数据

warming.csv有关1880年至2017年全球年平均温度 。

year

value全球平均温度,与1900-2000年的平均温度相比。

`simulations.csv`美国国家航空航天局(NASA)对历史温度的模拟数据,估计了自然和人为因素对气候的影响, 包含以下变量:

year

type自然还是人为影响因素

value来自模拟的全球平均温度,相对于1990-2000年的平均模拟值。

`charts`?空文件夹,我们将在其中保存要制作动画的各个帧。

配置

启动RStudio,创建一个新的RScript,然后通过选择将工作目录设置为包含下载数据的文件夹Session>Set Working Directory>To Source File Location。

安装?

加载我们今天将使用的软件包

#?加载需要的软件包

library(readr)

library(ggplot2)

library(dplyr)气泡图

我们制作了以下图表,显示了2016年世界各国的人均GDP,出生时的期望寿命和人口:

左右滑动查看更多

01

02

03

04

这是生成该图表的代码:

#?读取数据

nations?

#?过滤?2016?年的数据

nations2016?%

filter(year?==?2016)

#?绘制泡泡图

ggplot(nations2016,?aes(x?=?gdp\_percap,?y?=?life\_expect))?+

xlab("GDP?per?capita")?+

ylab("Life?expectancy?at?birth")?+

theme\_minimal(base\_size?=?12,?base_family?=?"Georgia")?+

geom_point(aes(size?=?population,?color?=?region),?alpha?=?0.7)?+

scale\_size\_area(guide?=?FALSE,?max_size?=?15)?+

scale\_x\_continuous(labels?=?dollar)?+

stat_smooth(formula?=?y?~?log10(x),?se?=?FALSE,?size?=?0.5,?color?=?"black",?linetype="dotted")?+

scale\_color\_brewer(name?=?"",?palette?=?"Set2")?+

theme(legend.position=c(0.8,0.4))

`scale_size_area`确保圆的大小根据人口数据按其面积缩放, 。

`labels ?`将X轴标签的格式。

`stat_smooth`的工作方式类似,`geom_smooth `允许 使用`formula`来指定用于拟合数据趋势线的曲线类型,此处为对数曲线。

现在,我们将生成1990年至2016年图表的动画。这是代码:

现在,Viewer通过运行以下命令将其显示在面板中:

animate(nations_plot)代码的工作方式

transition_time此功能通过来对数据进行动画处理year,仅显示与任何一个时间点相关的数据。除了每年生成一个帧外,它还生成中间帧以提供平滑的动画。

"{frame_time}"在ggtitle函数内使用会在每个帧上放置一个标题,并带有transition_time函数中变量此处的相应值year。

ease_aes控制动画的进行方式。

enter_fade,exit_fade这些功能控制动画中数据点出现或消失的行为。您也可以使用enter_shrink和exit_shrink。

另存为GIF和视频

现在,我们可以将动画另存为GIF或视频

您可以使用选项width和height设置动画的尺寸(以像素为单位)。fps设置GIF的帧速率,以每秒帧数为单位。

要制作视频,您需要代码renderer = ffmpeg_renderer(),这需要在系统上安装FFmpeg。上面的视频代码还将宽高比设置为16:9 。

这是GIF:

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O_nt08aQg4n9Bxkp2TueiDhQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com