2014-03-13 20 views
1

我计算了温度与葡萄收获日期之间的相关性。我存储结果作为矩阵:可视化R中地图上的相关性

 32.5   37.5  42.5  47.5   52.5  57.5  62.5 
-12.5 -0.05783118 -0.001655467 -0.07857098 -0.1526494 -0.0007327898 -0.02078552 0.06121682 
-7.5 -0.23219824 -0.059952117 -0.06895444 -0.1674386 -0.1311612338 -0.08476390 0.09831010 
-2.5 -0.11040995 -0.147325160 -0.15016740 -0.1796807 -0.1819844495 -0.14472899 -0.03550576 
2.5 -0.20577359 -0.180857373 -0.15077067 -0.2293366 -0.2577666092 -0.21645676 -0.13044584 
7.5 -0.44526971 -0.176224708 -0.15114994 -0.2459971 -0.2741514139 -0.19281484 -0.15683870 
12.5 -0.12481683 -0.121675085 -0.16011098 -0.2288839 -0.2503969467 -0.26616721 -0.23089796 
17.5 -0.15352693 -0.220012419 -0.11456690 -0.2314059 -0.2194705426 -0.20557053 -0.22529422 

现在我希望显示在地图上的结果。它应该是这样的:

example for visualizing correlations on a map

只有我的经度纬度UND是不同的。我的纬度从32.5°N到62.5°N,经度从-12.5°E到17.5°E。 我完全不知道它是如何完成的!这将是很好,如果有人可以帮助我。 此致敬礼。

+0

首先,con垂直数据集,以便它具有以下列:lon lat相关性。然后检查这个问题中提到的解决方案是否适用:http://stackoverflow.com/questions/7747991/geographical-heat-map-in-r –

回答

1

这是一种方法。你的网格比较粗糙(赤道的增量为5 °,或者赤道〜350英里),当然你没有提供实际的地图,但是这将在你提供的坐标上绘制一个相关的“热图”。

df <- cbind(lon=rownames(df),df) 
library(reshape2) 
library(ggplot2) 
library(RColorBrewer) 
gg <- melt(df,id="lon",variable.name="lat",value.name="corr") 
gg$lat <- as.numeric(substring(gg$lat,2)) # remove pre-pended "X" 
gg$lon <- as.numeric(as.character(gg$lon)) # convert factor to numeric 
ggplot(gg)+ 
    geom_tile(aes(x=lon,y=lat, fill=corr))+ 
    scale_fill_gradientn(colours=rev(brewer.pal(9,"Spectral")))+ 
    coord_fixed()