r语言 - 单位(x, default.units) 中的 ggplot 错误:'x' 和 'units' 的长度必须> 0



我查找了"ggplot2_Cheat Sheet_Rstudio _Maps数据可视化"并尝试制作日语版本(但它没有像上面那样工作(。 请帮助我理解为什么错误"单位(x,....错误"在这种情况下出现。

library(ggplot2)
library(mapdata)
all = map_data("japan")
unique(all[, 5])
pref = c( #47 Japanese prefectures
"Hokkaido",  "Aomori",    "Iwate",     "Miyagi",    "Akita",     "Yamagata",  "Fukushima",
"Ibaraki",   "Tochigi",   "Gunma",     "Saitama",   "Chiba",     "Tokyo",     "Kanagawa", 
"Niigata",   "Toyama",    "Ishikawa",  "Fukui",     "Yamanashi", "Nagano",    "Gifu",     
"Shizuoka",  "Aichi",     "Mie",       "Shiga",     "Kyoto",     "Osaka",     "Hyogo",    
"NARA",      "Wakayama",  "Tottori",   "Shimane",   "Okayama",   "Hiroshima", "Yamaguchi",
"Tokushima", "Kagawa",    "Ehime",     "Kochi",     "Fukuoka",   "Saga",      "Nagasaki", 
"Kumamoto",  "Oita",      "Miyazaki",  "Kagoshima", "Okinawa")
number = sample(1:20, 47, replace=TRUE) #random number
all_pref = as.data.frame(matrix(c(pref, number), 47, 2))
JP = ggplot2::map_data("japan")
DATA = data.frame(sample = as.numeric(all_pref$V2), 
japan = tolower(as.character(all_pref$V1)))
MAP = JP
k = ggplot(DATA, aes(fill = sample))
k + 
geom_map(aes(map_id = japan), map=MAP) + 
expand_limits(x = MAP$long, y = MAP$lat)

unit(x, default.units( 中的错误:"x"和"units"的长度必须> 0

您在 MAP 和 DATA 之间匹配的地名是不同的混合大小写和小写。

MAP$region混合了大写和小写字母,例如"北海道" 而DATA$japan则具有所有小写名称,例如"北海道"。

要允许 ggplot 在两者之间匹配,请按如下方式转换MAP将混合大小写区域名称转换为全部小写:MAP$region <- tolower(MAP$region)

最新更新