2011-02-03 41 views
8

Tôi muốn vẽ một bản đồ nhiệt trong R nhưng datafile của tôi là như thế nàyvẽ một bản đồ nhiệt trong R dựa trên zipcodes chỉ

Lat, Long, Zip, Zvalue 

tôi về cơ bản cần phải suy giữa các giá trị lat và dài và vẽ màu sắc dựa trên zvalue

làm thế nào tôi có thể làm điều đó trong R

tôi cuối cùng muốn có được một cái gì đó như thế này

enter image description here

+1

Hãy thử gói 'raster'. –

+0

Nếu bạn có dữ liệu vĩ độ và kinh độ thì các mã zip có liên quan không? –

+0

Có, tôi có thể sử dụng mã zip hoặc dữ liệu lat/long – Mark

Trả lời

3

pa ckage spatstat là bạn của bạn!

http://www.spatstat.org/spatstat/

Nếu dữ liệu của bạn là một tập hợp các sự kiện (như "một tội ác xảy ra tại (x, y)" đối với nhiều người (x, y)), sau đó bạn có thể sử dụng một ước tính mật độ hạt nhân để tạo ra của bạn bản đồ nhiệt. Bạn có thể xem một ví dụ ở đây:

https://github.com/drewconway/WikiLeaks_Analysis/blob/master/density.r

đặc biệt dòng 72.

Nếu giá trị z của bạn là những giá trị thực tế (mà có lẽ là trường hợp đọc câu hỏi của bạn) sau đó bạn có thể sử dụng chức năng spatstat của smooth trong đó sử dụng một hạt nhân Gaussian để thực hiện phép nội suy và lấy lại một tập các điểm ảnh đã được tạo ra bằng cách nội suy dữ liệu của bạn.

Hoặc, bạn có thể sử dụng gói akima (theo đề xuất của tác giả spatstat) để nội suy tại các vị trí bạn chỉ định. Nó sử dụng nội suy tuyến tính hoặc dựa trên spline và có vẻ khá đơn giản (mặc dù tôi không có kinh nghiệm với nó!).

Thông thường, những gì bạn đang cố gắng làm thường được gọi là "Thu hút" và vì vậy bạn nhận được rất nhiều kết quả nếu bạn nhấn lên google cho điều đó. Xem ví dụ các gói gstatgeoR.

Cuối cùng (và FTW), bạn có thể sử dụng Quy trình Gaussian để thực hiện cùng một loại điều. Điều này thực sự sẽ cung cấp cho bạn một phân phối trên nội suy có thể cho dữ liệu của bạn. Gói R kernlab có triển khai mặc dù tôi không biết cách sử dụng nó.

3

Jeffrey Breen đã làm kiểu này âm mưu sử dụng ggplot2 và các gói mã bưu điện: http://jeffreybreen.wordpress.com/2011/01/05/cran-zipcode/

Điều đó sẽ giúp bạn bắt đầu

+0

nhưng nó thậm chí không phải là một bản đồ nhiệt, tốt nhất của nó nó là một bản đồ Choropleth. Tôi tự hỏi nếu có bất kỳ chức năng/gói có thể làm nội suy tự động. – Mark

+0

@Mark: có thể là 'heat.colors'? – Aaron

2

Bạn có thể nhìn vào mã của vụ án ggplot nghiên cứu người chiến thắng cuộc thi here

Tác giả sử dụng geom_tile để tạo bản đồ nhiệt, tiêu đề của đồ thị là: Bản đồ thời tiết tội phạm bạo lực của Downtown Houston

Các vấn đề liên quan