Chciałbym utworzyć wykres słupkowy na spirali Archimedesa, jak omówione here.Spirala barplot za pomocą ggplot & coord_polar (Condegram)
Z celem końcowym podobnym do this, ale mniej przytłaczającym.
Oto dataframe próbki:
test <- structure(list(month = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12),
year = c(2015, 2015, 2015, 2015, 2015, 2015, 2015,
2015, 2015, 2015, 2015, 2015, 2016, 2016,
2016, 2016, 2016, 2016, 2016, 2016, 2016,
2016, 2016, 2016),
value = c(49, 34, 35, 34, 50, 35, 48, 50, 44, 38, 42,
43, 33,30, 42, 43, 58, 55, 47, 36, 35, 53,
61, 59)),
.Names = c("month", "year", "value"),
class = "data.frame", row.names = c(NA, -24L))
mogę zrobić wykres słupkowy, stosując następujący kod:
ggplot(monthly, aes(x = ym, y = value)) +
geom_bar(stat = "identity")
I mogę zrobić spiralę, stosując następujący kod:
a <- 0 #Any number here & it still looks the same to me...
b <- 10 #Any number here & it still looks the same to me...
theta <- seq(0,10*pi, 0.01)
r <- a + b*theta
df <- data.frame(x = r*cos(theta), y = r*sin(theta))
ggplot(df, aes(x,y)) +
geom_point(col = 'red')
Ale jak (jeśli w ogóle) mogę wykreślić paski na spirali?
To jest tak blisko, jak to zrobiłem: tworzenie spirali z moich danych zamiast powyższej formuły. Ale moje dane nie są wyświetlane ...
d <- ggplot(monthly, aes(x = month, y = month, color = year)) +
geom_path(size = 2) +
coord_polar() +
theme_minimal() +
theme(legend.position = "none")
d
This.is.awesome. –
To jest świetne! Odpowiedź została zaakceptowana. Poprawiłem przykładowy plik df i wprowadziłem kilka zmian w kodzie. Może istnieć lepszy sposób na zachowanie elastyczności kodu w przypadku, gdy jest więcej niż 24 wiersze, ale nrow() wydaje się działać dla mnie. 3 pytania: Jak mogę pokolorować paski zgodnie z ich wartością? Zmiana na wypełnienie = wartość tworzy coś, co wygląda jak gwiazda ninja. Propozycje? Czy możesz dodać kod do wykreślenia mapy ciepła? Wreszcie, wciąż pracuję nad tym, jak to dostosować, aby narysować wiele słupków miesięcznie, na przykład jeden słupek na wartość dzienną. Pomysły powitane! – jesstme
Wyjaśniłem, jak manipulować kolorem. Nadal mam nadzieję na wskazówki dotyczące codziennych wartości w każdym miesiącu i roku. 'ggplot (poly, aes (x, y, grupa = interakcja (miesiąc, rok))) + geom_polygon (aes (wypełnienie = wartość, kolor = rok), rozmiar = 1) + coord_polar()' – jesstme