在本文中,我将使用 R 中的小册子.minicharts 包在 R 中创建基于地图的图表。我已经介绍了小册子,用于在地图上创建标记并使用密度热图可视化空间分布。在这篇博文中,我使用 R 中的小册子.minicharts创建了条形图、饼图和极地图。
在 R 中使用 Leaflet 创建底图
首先,我为我的可视化创建了一个底图。我可以使用 R 中的小册子包来做到这一点。在下面的代码行中,我创建了底图。
library(knitr)
library(leaflet)
basemap = leaflet() %>%
addTiles() %>%
addProviderTiles(providers$OpenStreetMap.DE) %>%
setView(-98,38.5,zoom=4)
basemap
在这种情况下,我想查看美国的数据。出于这个原因,我将地图视图设置为显示美国的大部分州。夏威夷没有显示。
导入leaflet.minicharts 的销售数据
接下来,我导入美国每个相关州的销售数据。数据已经准备好并在 Excel 中汇总。这就是为什么数据在我导入内存的 csv 文件中可用的原因。
data = read.csv("sales.csv",header=TRUE)
head(data)
## state longitude latitude sales_sensors sales_pumps sales_displays
## 1 Wisconsin -89.50000 44.50000 13000 12002.374 5664.6262
## 2 West Virginia -80.50000 39.00000 5000 2739.885 3774.7759
## 3 Vermont -72.70000 44.00000 3400 1041.972 2332.2328
## 4 Texas -100.00000 31.00000 37000 6287.578 13425.8577
## 5 South Dakota -100.00000 44.50000 5600 3115.934 558.0957
## 6 Rhode Island -71.74233 41.74233 4000 3623.527 873.5025
## sales_motoroil sales_filters sales_tires sales_headlamps sales_rearlighting
## 1 10646.1263 3962.7175 4863.633 1921.3345 3692.084
## 2 844.2269 524.2226 4728.812 425.4734 2107.706
## 3 640.9263 1003.8087 2410.252 3056.3377 2659.093
## 4 16161.9943 30441.3494 10438.494 2196.3884 35905.807
## 5 5338.5218 4551.7116 3200.116 3823.2335 3946.851
## 6 1758.7899 3633.4848 3170.961 3211.9275 2669.132
## sales_interiorlighting sales_total
## 1 11227.7133 66980.61
## 2 956.6307 21101.73
## 3 3177.5397 19722.16
## 4 6316.8175 158174.29
## 5 723.8857 30858.35
## 6 3967.7682 26909.09
该数据集汇总了汽车零配件零售业务上一财年的销售收入。这家零售商专注于欧洲停车场,目前通过从德国、法国、意大利和西班牙直销的方式将所有销售订单运送给客户。销售分为主要产品组。
使用 Leaflet.minichart 可视化销售数据
首先,我使用小册子和小册子.minichart 创建条形图。我使用条形图来比较美国各地泵和传感器的销售情况。
library(leaflet.minicharts)
library(magrittr)
library(dplyr)
colors = c("#FF0000", "#428EF4")
basemap %>%
addMinicharts(
data$longitude, data$latitude,
chartdata = select(data,sales_sensors,sales_pumps),
colorPalette = colors,
width = 45, height = 45
)
这与总销售额相比如何?下面的条形图提供了这个问题的答案。
colors = c("#FF0000", "#428EF4","black")
basemap %>%
addMinicharts(
data$longitude, data$latitude,
chartdata = select(data,sales_sensors,sales_pumps, sales_total),
colorPalette = colors,
width = 45, height = 45
)
我也可以使用饼图进行这样的概述。见下面的代码:
colors <- c("#FF0000", "#428EF4")
basemap %>%
addMinicharts(
data$longitude, data$latitude,
type = "pie",
chartdata = select(data,sales_sensors,sales_pumps),
colorPalette = colors,
width = 60 * sqrt(data$sales_total) / sqrt(max(data$sales_total)), transitionTime = 0
)
饼图大小由圆半径定义。它来自所有产品类别的总销售收入。我现在再生成一张显示所有产品类别的饼图的地图。
basemap %>%
addMinicharts(
data$longitude, data$latitude,
type = "pie",
chartdata = select(data,sales_sensors,sales_pumps,sales_displays,sales_motoroil,sales_filters,sales_tires,sales_headlamps,sales_rearlighting,sales_interiorlighting),
width = 60 * sqrt(data$sales_total) / sqrt(max(data$sales_total)), transitionTime = 0
)
通过生成这样的可视化,我帮助零售商从物流配送的角度了解美国市场。
Leaflet.minicharts 的其他图表类型
使用传单.minicharts,我还可以在地图上将材料流显示为定向流。为此,我需要构建一个数据框,以纬度和经度值的形式收缩“源”和“汇”坐标。此外,必须在数据框中量化流量以进行绘图。
最后但同样重要的是,我还可以使用小册子.minicharts 创建动画图表。例如,当在地图上显示一些基于时间的趋势时,这很有帮助。
这个leaflet.minicharts 帖子的摘要
在本文中,我介绍了作为 R 中基于地图的图表绘制的包的传单.minicharts。在之前的文章中,我介绍了例如标记图或基于地图的热图的传单。本文记录了如何使用小册子.minicharts 将条形图和饼图添加到小册子地图中。
专业领域为优化和仿真的工业工程师(R,Python,SQL,VBA)
Leave a Reply