Używam plotrix
w R
celu wykreślenia mapy stanu USA. Ma doskonałą funkcję floating.pie
umieszczania wykresów kołowych w każdym stanie.
Zastanawiam się, czy w plotrix
pakiecie znajdują się podobne funkcje do wyświetlania wykresów słupkowych w każdym stanie? (Rzuciłem okiem na dokumentację i funkcje, które radzą sobie z wykresami słupkowymi, nie wydają się mieć takiej możliwości, ale po prostu chciałem się upewnić.) Wolę pracować w pakiecie plotrix, jeśli to możliwe, ale śmiało nazywam inne pakiety.
Na przykład chciałbym stworzyć mapę podobną do tej (ale dla USA):
Dla mojej mapy w USA byłoby 50 wykresów słupkowych, po jednym dla każdego stanu.
Mam tę mapę z /programming/20465070/barplots-on-a-map , ale wygląda na to, że ggsubplot nie działa na mojej wersji R (podobnie jak inni mówili w poście ).
źródło
ggsubplot
pakietem, ale teraz jest on przestarzały i nie będzie działał (jak wspomniałeś). Być może ten post może być punktem wyjścia: stackoverflow.com/questions/36063043/…Odpowiedzi:
Wiem, że naprawdę się z tym spóźniam, ale myślę, że znalazłem dość proste rozwiązanie.
Jeśli spojrzysz na kod źródłowy
floating.pie()
(np. Przez wywołaniegetAnywhere(floating.pie)
), zauważysz, że stosuje on bardzo proste, ale skuteczne podejście: rysowanie segmentów kołowych jako wielokątów. Jeśli wszystko, czego chcesz od wykresów słupkowych, to słupki (bez etykiet, osi itp.), Możesz zastosować to samo podejście i napisać własną funkcję. Oto szybka i brudna wersja:x
oznacza, że wartości mają być reprezentowane przez słupkixllc
iyllc
określ położenie lewego dolnego rogu lewego paska w dowolnym używanym układzie współrzędnychbarwidth
imaxheight
służą do skalowania rozmiaru prętówOto demo z podstawową
sp
fabułą. Nie sądzę, że pracowałemplotrix
wcześniej, ale na podstawie tegofloating.pie
, jak działa, zakładam, że to powinno również działaćplotrix
.Wynik wygląda następująco:
źródło
mapbars
jest zdefiniowana w pierwszym dużym bloku kodu, gdzie jest napisanemapbars <- function (x, xllc = 0, ...
. Najpierw musisz wykonać całą sekcję kodu, aby „nauczyć” R nowego polecenia.ggplot2 i ggvis to dwie biblioteki, które mogą pomóc w wyświetlaniu wykresów na mapie. W ggplot2 możesz rysować bąbelki na mapie, a następnie wystarczy podać aes () współrzędne, które nie mają nic wspólnego z rozmiarem i kolorem bąbelka. Jeśli chodzi o wykres słupkowy, musisz przypisać co najmniej 2 pary xiy, jedną dla lokalizacji wykresu słupkowego, a drugą dla wysokości i szerokości wykresu słupkowego. Innymi słowy, musisz znać współrzędne 4 narożników dla paska.
źródło