使用 robservable 绘制动态图表展示中国各省新冠疫情确诊人数变化

今天给大家推荐一个好用的 R 包:robservable,这个包的功能是可以在 RStudio 里面显示和操作 Observable notebooks。Observable notebooks 上有很多好用的网页工具,例如我之前在讲解 如何使用 R 语言制作双变量填充地图 中就介绍了一个双变量填充色生成器:https://observablehq.com/@czxa/bivariate-choropleth-color-generator

图表

首先安装这个包:

install.packages("robservable")
# 或者
remotes::install_github("juba/robservable")

例如:Bivariate Choropleth Color Generator 的网址为:https://observablehq.com/@czxa/bivariate-choropleth-color-generator

在 RStudio 中打开的方法:

library(robservable)
robservable("@czxa/bivariate-choropleth-color-generator")

在 RStudio 的浏览器中可能无法显示这个图,点击右上角的按钮就可以在电脑浏览器中打开看到结果了:

图表

也可以选择某个或多个 cells 进行显示:

robservable("@czxa/bivariate-choropleth-color-generator",
include = c("rows", "color1", "color2",
"lightest", "colorMode",
"palettes", "output1",
"output2"),
width = 800,
height = 200)

不过如果它就这个功能,这就是个没什么用的 R 包了。

当然你还可以在 R 里面使用这个控件,例如我们设定 rows = 10,color1 = “red”:

robservable("@czxa/bivariate-choropleth-color-generator",
include = c("rows", "color1", "color2",
"lightest", "colorMode",
"palettes", "output1", "output2"),
input = list(rows = 10, color1 = "red"))

是不是就很方便使用了!

借用这种方法,我们就可以绘制一幅动态图表来展示中国各省新冠疫情确诊人数动态变化了,我们基于的是这个网页:https://observablehq.com/@czxa/bar-chart-race

首先读取准备数据:

library(tidyverse)
library(robservable)
haven::read_dta("中国各省新冠疫情数据.dta") %>%
select(id = prov, date, value = confirmed) -> d

d

绘制图表:

robservable(
"https://observablehq.com/@czxa/bar-chart-race",
include = c("viewof date", "chart", "draw", "styles"),
hide = c("draw", "viewof date"),
input = list(
data = d,
title = "新冠肺炎疫情的发展状况(中国)",
subtitle = "各省新冠肺炎确诊人数动态变化",
source = "数据来源:https://www.tianditu.gov.cn/coronavirusmap/ | 绘制:微信公众号 RStata"
),
width = 800,
height = 600
) -> p
p
图表

也可以保存成 html 文件:

htmlwidgets::saveWidget(p, "各省新冠肺炎确诊人数动态变化.html")

是不是很方便。不过适合在 R 语言中使用的 Observable notebooks 感觉不怎么多。

点击这里跳转到 RStata 短书平台获取附件:使用 robservable 绘制动态图表展示中国各省新冠疫情确诊人数变化

评论