以直線連接數據點的極座標圖也稱爲雷達圖。
Erwan Le Pennec的文章:From Parallel Plot to Radar Plot處理這個問題創建一個與ggplot2
雷達圖。
他建議使用定義爲coord_radar()
:
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)
}
有了這個,我們可以創建情節如下:
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()
是ggiraphExtra
包的一部分。所以,你可以直接使用它
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()
注意coord_radar()
不被包導出。所以,需要三重冒號(:::
)來訪問該函數。
來源
2017-03-03 06:30:17
Uwe
有[ggradar](http://www.ggplot2-exts.org/ggradar.html),如果這是你想要做的,或者你可以做出必要的曲線與ggforce直線,但一般這是極座標圖表示數據的方式。 – alistaire
嗯。對於連續座標軸,我同意,但不一定對於這裏的部分離散空間。在我看來,ggplot強化了真正應該成爲美學選擇的東西。 – geotheory
'ggradar'可能有用,但是.. – geotheory