coord_polar
弯曲线,有时是您不希望的(例如,当空间被认为是离散的而不连续的时候):
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_polar()
一个以前的解决方法此不再有效。有人对更新的解决方法有任何想法吗?
极坐标中的数据点通过直线连接的图也称为雷达图。
Erwan Le Pennec有一篇文章:从Parallel Plot到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()
不是由包导出的。因此,需要三元冒号(:::
)才能访问该函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句