如何通过ggplot创建Heapmap

时间:2018-01-30 20:50:05

标签: r ggplot2 latitude-longitude heatmap

我有一个非常大的数据集,我试图通过lat和lon制作热图。这是我的样本数据集:

   Station.Latitude Station.Longitude value
1          36.08000         -78.79200  0.14
2          36.08000         -78.79222  0.10
3          36.07200         -78.78100  0.66
4          36.07222         -78.78083  0.29
5          36.05500         -78.76300  0.15
6          36.05500         -78.76278  0.46
7          36.02200         -78.73500  0.05
8          36.02167         -78.73500  0.32
9          36.02800         -78.71600  0.05
10         36.02806         -78.71611  0.51
11         36.02200         -78.68700  0.03
12         36.02222         -78.68722  0.40
13         35.99900         -78.65200  0.05
14         35.99944         -78.65194  0.18
15         35.97600         -78.63300  0.07
16         35.97583         -78.63333  0.24
17         35.95500         -78.58400  0.15
18         35.95528         -78.58417  0.24

我调用我的数据框nn,我尝试使用以下命令获取热图,但它的图是空的。任何人都知道为什么?

library('ggplot2')
library('RColorBrewer')

nn<-as.data.frame(nn)

hm.palette <- colorRampPalette(rev(brewer.pal(11, 'Spectral')), space='Lab')

ggplot(nn, aes(x=Station.Latitude, y=Station.Longitude, fill=value )) + 
  geom_tile()+
  scale_fill_gradientn(colours = hm.palette(100))

1 个答案:

答案 0 :(得分:0)

将x和y视为因子,以便更好地控制您正在处理的大范围:

 ggplot(nn, aes(x=as.factor(Station.Latitude), y=as.factor(Station.Longitude), fill=value)) + 
 geom_tile()+ 
 scale_fill_gradientn(colours = hm.palette(100))