我在 ggplot 中遇到问题,我想在同一图中绘制单独的数据集。第一个数据集创建地理热图并根据状态显示机会值。
setwd("~/R Work Example")
library(ggplot2)
library(maps)
states <- map_data("state")
tf=read.csv("Geographic Opprotunity.csv")
mydata<-read.csv("top 200 geographic heatmap.csv")
tfmerged <- merge(states, tf, sort = FALSE, by = "region")
tfmerged <- tfmerged[order(tfmerged$order), ]
Map<- ggplot(tfmerged, aes(long,lat, group=group,
fill=Total.Annual.Opportunity.In.Millions))+ geom_polygon()+ coord_equal()
Map + scale_fill_gradient(low="white", high="red")
Map<-Map + scale_fill_gradient(low="white", high="red")
Run Code Online (Sandbox Code Playgroud)
这非常有效,我非常兴奋。我的下一步是绘制这个图表,但这一次进一步细分机会,我不是按州细分,而是按州内的城市细分:
p<-ggplot()
p <- Map + geom_point( data=mydata, aes(x=long, y=lat, size = Opportunity
), color="gray6") + scale_size(name="Opportunity")
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,我收到此错误:
eval(expr, envir, enclos) 中的错误:未找到对象“组”。
我用谷歌搜索了它,并尝试了此页面上列出的一些解决方案,但仍然一无所获。我还为上面的脚本创建了另一个 ggplot 并让它正确绘制,我只是希望能够将第二个图中的实际数据点放在我在第一个脚本中创建的热图中。
您可以在这里找到我的数据集的片段:


我的数据如下:
dput(head(mydata))
structure(list(label = structure(c(79L, 51L, 138L, 161L, …Run Code Online (Sandbox Code Playgroud)