2011-02-03 12 views
8

Chcę narysować mapę cieplną w badania, ale mój datafile jest jak tenrysunek termiczna w R na podstawie zipcodes tylko

Lat, Long, Zip, Zvalue 

I w zasadzie trzeba interpolacji pomiędzy wartościami łac i długich i wyciągnąć kolory na podstawie zvalue

Jak mogę to zrobić w R

I w końcu chce się coś takiego

enter image description here

+1

Wypróbuj pakiet 'raster'. –

+0

Jeśli masz dane dotyczące szerokości i długości geograficznej, czy kody pocztowe są nieistotne? –

+0

Tak, mogę używać zarówno kodów pocztowych, jak i długich danych. – Mark

Odpowiedz

3

The pa ckage spatstat jest twoim przyjacielem!

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

Jeśli dane jest zbiór zdarzeń (takich jak "zbrodnia miała miejsce w (x, y)" za wielu (x, y)), a następnie można użyć oszacowanie gęstości jądra wygenerować Mapa ciepła. Można zobaczyć tu przykład:

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

specjalnie linia 72.

Jeśli wartości Z są wartości rzeczywiste (co jest zapewne sprawa czyta pytanie), a następnie można wykorzystać smooth funkcję spatstat, która wykorzystuje jądro Gaussa, aby wykonać interpolację i odzyskać zestaw pikseli, które zostały wygenerowane przez interpolację danych.

Można również użyć pakietu akima (zgodnie z zaleceniami autorów spatstat) w celu interpolacji w określonych lokalizacjach. Używa interpolacji liniowej lub spline i wydaje się dość prosta (choć nie mam z tym żadnego doświadczenia!).

Ogólnie rzecz biorąc to, co próbujesz zrobić, jest często nazywane "Kriging", więc masz dużo wyników, jeśli trafisz w Google. Zobacz np. pakiety gstat i geoR.

Wreszcie (i FTW) można używać procesów Gaussa do robienia tego samego. Pozwoli to na dystrybucję możliwych interpolacji danych. Pakiet R kernlab ma implementację, chociaż nie mam pojęcia, jak z niego korzystać.

3

Jeffrey Breen zrobił ten typ działki przy użyciu ggplot2 i pakiety Kod pocztowy: http://jeffreybreen.wordpress.com/2011/01/05/cran-zipcode/

To powinno Ci zacząć

+0

, ale nie jest to nawet mapa termiczna, w najlepszym razie jest to mapa Choropletha. Zastanawiam się, czy istnieje jakakolwiek funkcja/pakiet, który może automatycznie wykonać interpolację. – Mark

+0

@ Mark: może 'heat.colors'? – Aaron

2

Możesz zajrzeć kodeksu postępowania ggplot studiuje zwycięzcą konkursów here

Autor użył geom_tile do utworzenia mapy cieplnej, tytuł wykresu to: Strefa przemocy Weather Weather of Downtown Houston

Powiązane problemy