Ein Diagramm in Polarkoordinaten mit durch gerade Linien verbundenen Datenpunkten wird auch als Radarplot bezeichnet.
Es gibt einen Artikel von Erwan Le Pennec: From Parallel Plot to Radar Plot Umgang mit dem Problem, ein Radardiagramm mit ggplot2
zu erstellen.
Er schlägt vor, coord_radar()
zu verwenden wie folgt definiert:
coord_radar <- function (theta = "x", start = 0, direction = 1) {
theta <- match.arg(theta, c("x", "y"))
r <- if (theta == "x") "y" else "x"
ggproto("CordRadar", CoordPolar, theta = theta, r = r, start = start,
direction = sign(direction),
is_linear = function(coord) TRUE)
}
Damit können wir die Handlung wie folgt erstellen:
library(tidyr)
library(dplyr)
library(ggplot2)
iris %>% gather(dim, val, -Species) %>%
group_by(dim, Species) %>% summarise(val = mean(val)) %>%
ggplot(aes(dim, val, group=Species, col=Species)) +
geom_line(size=2) + coord_radar()
coord_radar()
ist Teil der ggiraphExtra
Paket. So können Sie es verwenden, um direkt
iris %>% gather(dim, val, -Species) %>%
group_by(dim, Species) %>% summarise(val = mean(val)) %>%
ggplot(aes(dim, val, group=Species, col=Species)) +
geom_line(size=2) + ggiraphExtra:::coord_radar()
Beachten Sie, dass coord_radar()
nicht durch das Paket exportiert wird. Daher wird der dreifache Doppelpunkt (:::
) benötigt, um auf die Funktion zuzugreifen.
Es gibt [ggradar] (http://www.ggplot2-exts.org/ggradar.html) wenn Sie das versuchen, oder Sie könnten die Kurven erstellen, die notwendig sind, um gerade Linien mit ggforce zu erstellen, aber generell So stellen polare Graphen Daten dar. – alistaire
Hmm. Für kontinuierliche Achsen würde ich zustimmen, aber nicht unbedingt für teilweise diskreten Raum wie hier. Es scheint mir, dass ggplot durchgesetzt hat, was eigentlich eine ästhetische Entscheidung sein sollte. – geotheory
'ggradar' ist möglicherweise nützlich aber .. – geotheory