2011-12-07 38 views
5

Tôi muốn tạo bản đồ nhiệt thực sự trong R, giống như bản đồ thời tiết, ngoại trừ dữ liệu của tôi đơn giản hơn nhiều.Bản đồ nhiệt thực sự trong R

xem xét dữ liệu 3d này:

x <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4) 
y <- c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5) 
z <- rnorm(20) 

z sẽ là màu sắc.

Đây là những gì một tìm Heatmap rời rạc muốn cho dữ liệu này: enter image description here

Làm thế nào tôi có thể làm một bản đồ nhiệt như vậy mà màu sắc được mịn màng và không gian 2d đầy đủ được làm đầy với màu sắc mượt dựa trên z giá trị.

Vui lòng bao gồm mã mẫu, không chỉ liên kết có thể gây nhầm lẫn cho tôi nhiều hơn nữa và tôi có thể đã truy cập trang web đó dù sao đi nữa. Cảm ơn :)

+0

Có cách nào tôi có thể lấy bảng màu này trong các gói mặc định không? – Rodrigo

Trả lời

13

Sử dụng như sau:

interp trong gói akima

image.plot trong gói fields

x <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4) 
y <- c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5) 
z <- rnorm(20) 

library(fields) 
library(akima) 

s <- interp(x,y,z) 
image.plot(s) 
+2

Tùy chọn vẽ đồ thị khác là sử dụng hình học geom_tile từ ggplot2. –

0

smooth.2d trong gói fields không một công việc tốt (và nó là nhiều nhanh hơn interp từ gói akima cho số điểm đầu vào lớn hơn.

library(fields) 

x <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4) 
y <- c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5) 
z <- rnorm(20) 

s = smooth.2d(z, x=cbind(x,y), theta=0.5) 
image.plot(s) 
Các vấn đề liên quan