gpt4 book ai didi

r - 将计数作为标签添加到 geom_count 中的点

转载 作者:行者123 更新时间:2023-12-05 05:19:04 25 4
gpt4 key购买 nike

我使用 geom_count 将重叠点可视化为大小组,但我还想将实际计数作为标签添加到标绘点,如下所示:

enter image description here然而,为了实现这一点,我必须创建一个包含计数的新数据框,并在 geom_text 中使用这些数据,如下所示:

#Creating two data frames
data <- data.frame(x = c(2, 2, 2, 2, 3, 3, 3, 3, 3, 4),
y = c(1, 2, 2, 2, 2, 2, 3, 3, 3, 3),
id = c("a", "b", "b", "b", "c",
"c", "d", "d", "d", "e"))
data2 <- data %>%
group_by(id) %>%
summarise(x = mean(x), y = mean(y), count = n())

# Creating the plot
ggplot(data = data, aes(x = x, y = y)) +
geom_count() +
scale_size_continuous(range = c(10, 15)) +
geom_text(data = data2,
aes(x = x, y = y, label = count),
color = "#ffffff")

有没有办法以更优雅的方式实现这一点(即不需要第二个数据框)?我知道您可以使用 ..n.. 访问 geom_count 中的计数,但如果我尝试在 geom_text 中访问它,这是行不通的。

最佳答案

你期待这样吗:

ggplot(data %>% 
group_by(id) %>%
summarise(x = mean(x), y = mean(y), count = n()),
aes(x = x, y = y)) + geom_point(aes(size = count)) +
scale_size_continuous(range = c(10, 15)) +
geom_text(aes(label = count),
color = "#ffffff")

enter image description here

更新:如果必须使用 geom_count,则可以使用以下方法实现预期输出:

p <- ggplot(data = data, aes(x = x, y = y)) +
geom_count() + scale_size_continuous(range = c(10, 15))
p + geom_text(data = ggplot_build(p)$data[[1]],
aes(x, y, label = n), color = "#ffffff")

enter image description here

关于r - 将计数作为标签添加到 geom_count 中的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46851450/

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