Chociaż wiem, że istnieje szereg funkcji do generowania map ciepła w R, problem polega na tym, że nie jestem w stanie stworzyć atrakcyjnych wizualnie map. Na przykład poniższe zdjęcia to dobre przykłady map cieplnych, których chcę unikać. Pierwszy wyraźnie nie zawiera szczegółów, podczas gdy drugi (oparty na tych samych punktach) jest zbyt szczegółowy, aby był użyteczny. Oba wykresy zostały wygenerowane przez funkcję gęstości () w pakiecie spatstat R.
Jak mogę uzyskać więcej „przepływu” na moje wykresy? Moim celem jest raczej wygląd wyników komercyjnego oprogramowania SpatialKey ( zrzut ekranu ).
Jakieś wskazówki, algorytmy, pakiety lub wiersze kodu, które mogłyby mnie poprowadzić w tym kierunku?
r
data-visualization
spatial
Figaro
źródło
źródło
Odpowiedzi:
Istnieją dwie rzeczy, które wpłyną na gładkość wydruku, szerokość pasma wykorzystywana do oszacowania gęstości jądra oraz przerwy, którym przypisujesz kolory na wykresie.
Z mojego doświadczenia wynika, że do analizy eksploracyjnej po prostu dostosowuję przepustowość, aż otrzymam użyteczny wykres. Pokaz poniżej.
Po prostu zmiana domyślnego schematu kolorów nie pomoże, podobnie jak zmiana rozdzielczości pikseli (jeśli w ogóle domyślna rozdzielczość jest zbyt precyzyjna, należy zmniejszyć rozdzielczość i powiększyć piksele). Chociaż możesz chcieć zmienić domyślny schemat kolorów ze względów estetycznych, ma on być bardzo dyskryminujący.
Aby pomóc w kolorze, zmień poziom skali na logarytmy (naprawdę pomoże tylko w przypadku bardzo niejednorodnego procesu), zmień paletę kolorów, aby bardziej różnić się w dolnej części (odchylenie w zakresie specyfikacji rampy kolorów w R) lub dostosuj legendę, aby mieć dyskretne pojemniki zamiast ciągłego.
Przykłady stronniczości w legendzie zaadaptowanej stąd , a ja mam inny post na stronie GIS wyjaśniający kolorowanie dyskretnych pojemników w dość prostym przykładzie tutaj . Nie pomoże to jednak, jeśli wzór jest wygładzony lub wygładzony na początek.
Aby kolory były przezroczyste na ostatnim obrazie (gdzie pierwszy pojemnik kolorów jest biały), wystarczy wygenerować rampę kolorów, a następnie zastąpić specyfikację RGB przezroczystymi kolorami. Przykład poniżej z wykorzystaniem tych samych danych, co powyżej.
źródło
Możesz skorzystać z funkcji interp z pakietu akima. Umożliwi to interpolację macierzy do innej rozdzielczości, jeśli zajdzie taka potrzeba. Aby stworzyć coś w rodzaju połączonego przykładu, trzeba interpolować do całkiem dobrej siatki (być może z argumentami xo i yo o długości ~ 1000). Otrzymasz nową matrycę, którą możesz wydrukować za pomocą image (). Jeśli potrzebujesz przejrzystości, zajmie to trochę dodatkowej pracy. Nie jest to łatwe z paletą kolorów, więc może być konieczne wydrukowanie każdej siatki jako wielokąta z przypisanym kolorem.
źródło
Możesz zajrzeć do ggplot2. Wygląda na to, że pakiet, który wypróbowałeś, nie ma świetnych schematów kolorów lub „przepływu” - spójrz na RColorBrewer. Istnieje blog, na którym zaimplementował ten pakiet z prostym przykładem.
Nie jestem pewien, czy próbujesz wykreślić dane geograficzne, jak pokazano w połączonym przykładzie, ale jeśli tak, wiem, że Google oferuje „Static Maps API V2 Developer Guide” i możesz połączyć Google i R z pakietem o nazwie RgoogleMaps .
Powodzenia w twoich badaniach.
źródło
Czy próbowałeś zwiększyć rozdzielczość
density
? Spróbuj argumentowaćdimyx=c(512, 512)
lub wyżej.źródło