用R语言制作交互式图表和地图
创始人
2024-03-20 23:19:02

可以直接从R / RStudio制作在线交互式图表和地图。

去年,我们为一位客户进行了短暂的咨询工作,他正在构建一个主要基于在线交互式图表的分析应用程序。

配置

启动RStudio,创建一个新的RScript,然后将工作目录设置为下载的数据文件夹。 

使ggplot2图表成为交互式Plotly图表

制作交互式 点线图

以下代码将安装并加载程序包(该程序还将自动加载ggplot2),加载readrdplyr,然后加载我们之前使用的食品券数据。

# install and load plotly, load readr and dplyr
install.packages("plotly")
library(plotly)
library(readr)
library(dplyr)

 将其转变为Plotly图。

# load data
food_stamps <- read_csv("food_stamps.csv")# dot-and-line chart
food_stamps_chart <- ggplot(food_stamps, aes(x = year, y = participants)) +xlab("Year") +ylab("Participants (millions)") +theme_minimal(base_size = 14, base_family = "Georgia")geom_point() +geom_line()plot(food_stamps_chart)

如前所述,这会将ggplot2图表保存在您的环境中。以下代码将其转换为“绘图”图表,该图表应显示在Viewer右下角的标签中:

当您将鼠标悬停在默认图表上时,一些控件会显示在右上角。 

要重新格式化工具提示,我们需要同时修改ggplot2plotly代码

最终layout功能中的代码代码为工具提示设置样式,使用白色背景并更改字体系列,使其与图表的其余部分保持一致。 将代码插入页面并按如下所示进行编辑:

结果应该是:

制作疾病和民主散点图的交互式版本

此代码创建具有线性趋势线的基本散点图,而没有映射到点income_group的颜色:

结果应该是:

以下代码使用定性的ColorBrewer调色板为这些点创建此图表的版本,以由世界银行收入组为其着色。

这是静态版本:

这是交互式的:

请注意,交互式ggplot版本未继承scale_color_brewer对静态ggplot图表中的图例中的项目进行排序的代码。

但是我们可以通过首先运行以下代码来解决此问题:

这将转换income_group为分类变量或factor,然后按其类别或级别的顺序对数据框进行排序。

现在,像以前一样运行图表代码将可以固定交互式图表中图例中项目的顺序。

制作交互式版本的加州幼儿园免疫接种热图

这是 另一个示例。

结果应该是:

练习制作其他交互式图表

在课堂上,在时间允许的情况下,我们将使用plotly 创建这些ggplot2图表的交互式版本:

使用Leaflet制作地震风险图和地震图

 制作交互式在线地图的最广泛使用的JavaScript库。 

# install and load leaflet and rdgal
install.packages("leaflet")
install.packages("rgdal")
library(leaflet)
library(rgdal)

 首先,让我们看看如何制作以伯克利为中心的基本Leaflet地图:

该地图应显示在Viewer

leaflet函数创建一个 地图。

 该addProviderTiles函数使用Leaflet Providers插件将各种图块添加到地图。 

现在seismic使用rgdal中readOGR函数加载从shapefile 开始的地震地图所需的数据。

提到的两个分别seismic指向文件夹和其中的shapefile。

现在你应该在你的环境中调用的对象seismic是一个SpatialPolygonsDataFrame

我们还可以直接从美国地质调查局地震API中加载地震数据,如有关查找和下载数据的课程说明中所述:

使用该网址,我们加载了自1960年初以来6级及以上的地震,地震发生在美国大陆地理中心的6,000公里半径内。

让我们看一下seismic数据摘要:

# view summary of seismic_risk data
summary(seismic)

定义破坏性地震的年度风险的数据是可变的ValueRange。但是,此合并变量的类别顺序不正确。要更正此问题,我们应将变量从文本转换为factor,或levels按正确的顺序进行分类。

现在,类别应按正确的顺序排列:

请注意,要运行dplyr代码以mutate

接下来,我们将地震风险数据加载到 地图中:

现在,您应该leaflet在环境中看到一个类型的对象。

现在,我们只需两行代码就可以创建具有两层的地图:

结果应该是:

该函数colorFactor将命名的ColorBrewer调色板分配给类别变量。

该函数addPolygons将多边形添加到地图:不stroke = FALSE给它们轮廓;fillOpacity = 0.7使它们稍微透明;color = ~pal(ValueRange))使用调色板根据ValueRange数据中的值为多边形着色。

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...