gpt4 book ai didi

r - ggplot2:用直线连接极坐标中的点2

转载 作者:行者123 更新时间:2023-12-04 01:47:35 34 4
gpt4 key购买 nike

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()

enter image description here

一个 previous workaround因为这不再有效。有人对更新的解决方法有任何想法吗?

最佳答案

用直线连接数据点的极坐标图也称为雷达图

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()

enter image description here

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() 不是由包导出的。因此,访问函数需要三个冒号 (:::)。

关于r - ggplot2:用直线连接极坐标中的点2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42562128/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com