v <- 2^(7:17)
min_lon <- 6.164780
max_lon <- 15.744857
min_lat <- 47.228296
max_lat <- 54.426407
center_lon <- (min_lon + max_lon)/2
center_lat <- (min_lat + max_lat)/2
df <- data.frame(id = 1:sum(v))
df$T <- rep(paste("T", v, sep="_"), v)
df$lon <- runif(sum(v),min_lon, max_lon)
df$lat <- runif(sum(v),min_lat,max_lat)
Làm một bản đồ nhiệt với tính minh bạch = .. mức ..Heatmap minh bạch, màu và độ đặc hiệu không Đáp ứng
gg_heatmap <- function(T){
g <- ggmap(get_map(location=c(lat=center_lat, lon=center_lon), zoom=6, maptype="roadmap", source="google"))
g <- g + scale_fill_gradientn(colours=rev(rainbow(100, start=0, end=0.75)))
g <- g + stat_density2d(data=df[df$T == "T_1024",], aes(x = lon, y = lat,fill = ..level..,transparency=..level..),
size=1, bins=100, geom = 'polygon')
print(g)
}
system.time(gg_heatmap("T_1024"))
Làm một bản đồ nhiệt bằng cách thiết lập alpha = 0,05
gg_heatmap <- function(T){
g <- ggmap(get_map(location=c(lat=center_lat, lon=center_lon), zoom=6, maptype="roadmap", source="google"))
g <- g + scale_fill_gradientn(colours=rev(rainbow(100, start=0, end=0.75)))
g <- g + stat_density2d(data=df[df$T == "T_1024",], aes(x = lon, y = lat,fill = ..level..), alpha=.05,
size=1, bins=100, geom = 'polygon')
print(g)
}
system.time(gg_heatmap("T_1024"))
Cả hai kết quả đều không thỏa mãn. Tôi muốn thấy một cái gì đó giống như heatmap sau đây được thực hiện với QlikView và sử dụng cùng một bộ dữ liệu "T_1024".
Có ba khía cạnh tôi thích về QV-phiên bản:
- Các tính minh bạch cho phép vẫn xem bản đồ bên dưới ...
- ... trong khi các màu sắc vẫn còn mang tính biểu cảm và không nhợt nhạt
- Màu tô cho phép nhận biết thêm chi tiết
Tôi đã cố gắng giải quyết (1) bằng cách thử nghiệm với các cách khác nhau để thiết lập mức alpha tĩnh cũng như liên quan đến ..level .. Tuy nhiên, tôi không thể có được kết quả tốt. Độ trong suốt không bao giờ thực sự tốt và nếu tôi thấy bản đồ màu sắc quá nhạt.
(3) Tôi nghĩ tôi có thể ảnh hưởng bằng cách đặt giá trị bin cao.
Bất kỳ ý tưởng nào về cách tối ưu hóa hiển thị bản đồ nhiệt hoặc ít nhất các khía cạnh của nó?
'Minh bạch' là đối số hợp lệ cho' stat_density2d (...) '?? Tại sao bạn không sử dụng 'alpha = .. level..'? – jlhoward