我对这段代码有疑问。地图出现,但没有颜色。我已经安装了 tidiverse、highcharter、geonames、ggplot2、gganimate、地图、ggmap。我应该安装更多软件包吗?
population<-baza %>%
select(Country, Population)
highchart() %>%
hc_add_series_map(worldgeojson, df=population, value="Population", joinBy = "Country") %>%
hc_colorAxis(stops=color_stops()) %>%
hc_title(text="World Population") %>%
hc_tooltip(useHTML = TRUE,
formatter = JS(
"function(){",
" return '<b><u>'+this.point.Country+'</u></b><br>'",
" +'<b>Population:</b> '+parseInt(this.point.value);",
"}"
)
) %>%
hc_legend(
enabled = TRUE,
title = list(text = "Population"),
layout = "vertical",
align = "right",
verticalAlign = "middle"
)
Baza 是我的数据框,其中包含“国家/地区”和“人口”列。 应该在这段代码中添加一些东西吗?
该问题与任何丢失的软件包无关,例如
highcharter
不需要 ggplot2
、gganimate
,...如果缺少包,R 通常会抱怨并显示错误消息。当您使用 install.packages
安装软件包时,所有需要的依赖包通常也会安装。
最可能的问题是您的数据集
population
无法合并到geojson数据中,例如当您错误指定 joinBy
列时会发生。
我查看了文档(
?hc_add_series_map
)并猜测您使用由worldgeojson
提供的highcharter
数据,问题是worldgeojson
数据没有属性Country
,例如国家/地区名称存储在属性 name
中,ISO3 国家/地区代码存储在名为 iso3
的属性中,...
因此,在这种情况下,解决您的问题的方法是重命名您的
Country
列。
使用一些虚假示例
population
数据,我假设 Country
包含国家/地区名称:
library(highcharter)
library(dplyr)
population <- data.frame(
Country = "United States of America",
Population = 300
)
population <- population |>
rename(name = Country)
data(worldgeojson, package = "highcharter")
highchart() %>%
hc_add_series_map(worldgeojson, df = population, value = "Population", joinBy = "name") %>%
hc_colorAxis(stops = color_stops()) %>%
hc_title(text = "World Population") %>%
hc_tooltip(
useHTML = TRUE,
formatter = JS(
"function(){",
" return '<b><u>'+this.point.Country+'</u></b><br>'",
" +'<b>Population:</b> '+parseInt(this.point.value);",
"}"
)
) %>%
hc_legend(
enabled = TRUE,
title = list(text = "Population"),
layout = "vertical",
align = "right",
verticalAlign = "middle"
)