gpt4 book ai didi

r - ggplot geom_bar 与 stat = "sum"

转载 作者:行者123 更新时间:2023-12-03 14:11:30 26 4
gpt4 key购买 nike

我想绘制一个条形图,沿两个维度汇总一个变量,一个将沿着 x 展开。 ,另一个将垂直展开(堆叠)。

我希望以下两条指令能做同样的事情,但它们没有,只有第二条给出了所需的输出(我自己汇总数据的地方)。

我想了解在第一种情况下发生了什么,以及是否可以使用 ggplot2的内置聚合功能以获得正确的输出。

library(ggplot2)
library(dplyr)
p1 <- ggplot(diamonds,aes(cut,price,fill=color)) +
geom_bar(stat="sum",na.rm=TRUE)

产生这个情节:

enter image description here
p2 <- ggplot(diamonds %>%
group_by(cut,color) %>%
summarize_at("price",sum,na.rm=T),
aes(cut,price,fill=color)) +
geom_bar(stat="identity",na.rm=TRUE)

产生这张图片:

enter image description here

这是我们的条形顶部应该在哪里,p1 没有给出这些值:
diamonds %>% group_by(cut) %>% summarize_at("price",sum,na.rm=TRUE)
# # A tibble: 5 x 2
# cut price
# <ord> <int>
# 1 Fair 7017600
# 2 Good 19275009
# 3 Very Good 48107623
# 4 Premium 63221498
# 5 Ideal 74513487

最佳答案

您可能误解了 stat geom_bar 的选项.在这种情况下,由于您希望在每个条形中对每个因子的值求和,并且根据每种颜色中总和的数量对条形进行着色,因此您可以简化对 geom_col 的调用。它使用这些值作为条形的高度;因此“求和”每个类别中的所有值。例如,以下将给出所需的输出:

p1 <- ggplot(diamonds,aes(cut,price,fill=color)) + 
geom_col(na.rm=TRUE)

或者,如果您想使用 geom_bar使用 stat 调用,那么您要使用“身份”统计信息:
p1 <- ggplot(diamonds,aes(cut,price,fill=color)) + 
geom_bar(stat = "identity", na.rm=TRUE)

有关更多信息,请考虑此线程: https://stackoverflow.com/a/27965637/6722506

关于r - ggplot geom_bar 与 stat = "sum",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47818188/

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