嗨我有很多像这样的数据框
id oldid yr mo dy lon lat
1 01206295 Aberfeldy 1885 3 22 -127.1 -31.78
2 05670001 05670005 1885 3 22 -4.38 49.15
3 06279 06279 1885 3 22 -123.5 37.5
4 106251 06323 1885 3 22 178.5 19.5
5 58FFF3618 58FFF3618 1885 3 22 -0.73 69.73
6 Achille.F Achille.F 1885 3 22 -35.62 -2.98
存储在不同的文件myfiles
中,我试图用根据id值选择的颜色绘制每个文件的(lon,lat)点。到目前为止,我正在这样做
for (i in 1:length(myfiles)){
colnames(myfilesContent[[i]]) <-c("id","oldid","yr","mo","dy","lon","lat")
p <- ggplot() + geom_polygon(data=world_map,aes(x=long, y=lat,group=group))
myfilesContent[[i]]$lon <- as.numeric(myfilesContent[[i]]$lon)
myfilesContent[[i]]$lat <- as.numeric(myfilesContent[[i]]$lat)
p + geom_point(data=myfilesContent[[i]], aes(x=lon, y=lat, fill=as.factor(id)), size = 4, shape = 21, show_guide=FALSE)
print(p)
}
无论如何,我不确定如果一个id在不同的文件中,它将被赋予相同的颜色
非常感谢
答案 0 :(得分:1)
您可以确保所有id列的级别相同。首先,获取所有data.frame
s
allids <- unique(unlist(lapply(myfilesContent, function(x) levels(x[,1])))
然后确保所有ID列共享这些级别
lapply(seq_along(myfilesContent), function(i) {
myfilesContent[[i]][,1] < -factor(myfilesContent[[i]][,1], levels=allids)
})
如果它们具有相同的级别,它们应该具有相同的颜色。