印度经度纬度网格单元填充R的地图

时间:2015-06-04 18:58:03

标签: r plot ggplot2 maps sp

我有印度357个网格的数据。每个网格都有一些价值。我想在R中绘制它。我使用以下行

library(maps)
library(ggplot2)
data <- read.csv("foo.csv")
ind <- map(database = "world", regions = "india", exact = FALSE, boundary = T)
india <- map_data(ind , region = "india", exact = F)
(ggplot(aes(x=x, y=y, fill=z), data=data) + geom_tile()) + geom_polygon(data=india, aes(x=long, y=lat, group=group), colour="black", fill="red", alpha=0)

但是我的地图非常糟糕。 我该如何改善这张图片?我见过一些好方法 R Plot Filled Longitude-Latitude Grid Cells on Map 但不幸的是,这些方法在我的案例中不起作用。任何人都将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

你需要有一个印度国家与你的观察相关联。有了这个,我相信你可以合并你的地图数据和你的印度州观察数据。这是示例代码。

states_map <- map_data("state")
fee_map <- merge(states_map, spendstate, by.x = "region", by.y = "state")
fee_map <- arrange(fee_map, group, order) # eeed to sort polygons in right order

然后,使用我的代码,例如:

ggplot(fee_map, aes(x = long, y = lat,  group = group, fill = obs)) + 
  geom_polygon() + 
  coord_map("polyconic") + reestheme + labs(x = "", y = "") +
  scale_fill_gradient(low = "green", high = "red") +
  theme(legend.position = "bottom") + 
  theme( legend.position=c(0,0),  legend.justification=c(0, 0)) + # lower left and lower left just
  theme(legend.text = element_text(colour= "black", size=10, hjust=0,vjust=0,face="plain")) + 
  theme(axis.text = element_blank()) + theme(axis.ticks = element_blank())