R 中基于地图的图表 (leaflet.minicharts)

在本文中,我将使用 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
  )
R中带有leaflet.minicharts的地图上的条形图

这与总销售额相比如何?下面的条形图提供了这个问题的答案。

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
  )
R中带有leaflet.minicharts的饼图

饼图大小由圆半径定义。它来自所有产品类别的总销售收入。我现在再生成一张显示所有产品类别的饼图的地图。

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

通过生成这样的可视化,我帮助零售商从物流配送的角度了解美国市场。

Leaflet.minicharts 的其他图表类型

使用传单.minicharts,我还可以在地图上将材料流显示为定向流。为此,我需要构建一个数据框,以纬度和经度值的形式收缩“源”和“汇”坐标。此外,必须在数据框中量化流量以进行绘图。

最后但同样重要的是,我还可以使用小册子.minicharts 创建动画图表。例如,当在地图上显示一些基于时间的趋势时,这很有帮助。

这个leaflet.minicharts 帖子的摘要

在本文中,我介绍了作为 R 中基于地图的图表绘制的包的传单.minicharts。在之前的文章中,我介绍了例如标记图或基于地图的热图的传单。本文记录了如何使用小册子.minicharts 将条形图和饼图添加到小册子地图中。

You May Also Like

Leave a Reply

Leave a Reply

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据