如何解决R语言ggplot绘制世界地图时data必须为数据框的报错
错误根源
你给ggplot传入的df1不符合数据格式要求,问题出在df1 <- data(world2MapEnv)这行代码:data()函数的作用是将指定数据集加载到当前运行环境,它的返回值是加载成功的数据集名称的字符向量,而非数据集本身,你把字符向量传入ggplot的data参数自然会触发类型错误。同时你的原代码遗漏了ggplot2包的加载,这也是潜在的运行报错点。
解决方法
用map_data()函数直接将maps包内置的地图数据转为ggplot可识别的数据框格式,修正后的完整可运行代码如下:
# 首次运行需要先安装依赖包,安装完成后可注释掉以下三行 # install.packages("mapdata") # install.packages("maps") # install.packages("ggplot2") # 加载依赖包 library(maps) library(mapdata) library(ggplot2) # 提取世界地图数据,转为数据框格式 df1 <- map_data("world2") # 绘图逻辑 p <- ggplot(data = df1, aes(x = long, y = lat, group = group, fill = region)) p + geom_polygon(color = "gray90", size = 0.1) + guides(fill = FALSE)
运行上述代码即可成功生成基础世界地图。
内容的提问来源于stack exchange,提问作者Rhedavetester
相关产品推荐
相关产品推荐

