Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在ggplot2中按组显示摘要统计信息_R_Ggplot2_Bar Chart - Fatal编程技术网

R 如何在ggplot2中按组显示摘要统计信息

R 如何在ggplot2中按组显示摘要统计信息,r,ggplot2,bar-chart,R,Ggplot2,Bar Chart,我有一个包含3个变量的数据框架:manu、brand和vol 这是我的阴谋。如何在绘图中的某个位置按制造商显示总体积和%vol 因此,对于manu A,我们将分别获得65%和38%的se,对于manu B,我们将看到60%和35% 最后,对于manu C,我们将看到45%和26% 我的数据: manu <- c('A', 'A', 'A', 'B',"B", "C","C") brand <- c('A1', 'A2', 'A3', 'B1',"B2", "C1","C2") v

我有一个包含3个变量的数据框架:manu、brand和vol

这是我的阴谋。如何在绘图中的某个位置按制造商显示总体积和%vol

  • 因此,对于manu A,我们将分别获得65%和38%的se,对于manu B,我们将看到60%和35% 最后,对于manu C,我们将看到45%和26%
我的数据:

manu <- c('A', 'A', 'A', 'B',"B", "C","C")
brand <- c('A1', 'A2', 'A3', 'B1',"B2", "C1","C2")
vol <- c(10,    25, 30, 45, 15, 25, 20)

为了完成,最后的答案是:

library("magrittr")
library("dplyr")
library(ggplot2)


manu  <- c('A', 'A', 'A', 'B',"B", "C","C")
brand <- c('A1', 'A2', 'A3', 'B1',"B2", "C1","C2")
vol   <- c(10, 25, 30, 45, 15, 25, 20)

df <- data.frame(manu = c('A', 'A', 'A', 'B',"B", "C","C"),
                 brand = c('A1', 'A2', 'A3', 'B1',"B2", "C1","C2"),
                 vol = c(10, 25, 30, 45, 15, 25, 20))

df$grand_total_vol = sum(df$vol)

df2 <- df %>% group_by(manu) %>% mutate(total_vol = sum(vol)) %>% mutate(percent_vol = 100*total_vol/grand_total_vol)  %>% ungroup()

ggplot(data=df2) +
  geom_bar(aes(x=manu, y=vol, fill=brand),stat = "identity",position = position_stack(reverse = TRUE)) +
  geom_text(aes(x=manu, y=vol, label= paste0("Percent Vol: ", round(percent_vol*100,1),"%")),
            position = position_stack(vjust = .5)) +
  geom_text(aes(x = manu,y = 70, label = paste0(df2$total_vol, "; ", round(df2$percent_vol, 1), "%")))
library(“magrittr”)
图书馆(“dplyr”)
图书馆(GG2)

manu像这样的东西应该有用。你必须根据你认为合适的情况对百分比的位置进行取整/调整

install.packages("dplyr")
install.packages("magrittr")
library("magrittr")
library("dplyr")
library(ggplot2)


manu <- c('A', 'A', 'A', 'B',"B", "C","C")
brand <- c('A1', 'A2', 'A3', 'B1',"B2", "C1","C2")
vol <- c(10,    25, 30, 45, 15, 25, 20)

df <- data.frame(manu = c('A', 'A', 'A', 'B',"B", "C","C"),
                 brand = c('A1', 'A2', 'A3', 'B1',"B2", "C1","C2"),
                 vol = c(10, 25, 30, 45, 15, 25, 20))


df2 <- df %>% group_by(manu) %>% mutate(total_vol = sum(vol),
                                        percent_vol = vol/total_vol) %>%
          ungroup()

ggplot(data=df2) + 
     geom_bar(aes(x=manu, y=vol, fill=brand),stat = "identity",position = position_stack(reverse = TRUE)) +
     geom_text(aes(x=manu, y=vol, label= paste0("Percent Vol: ", round(percent_vol*100,1),"%")),
              position = position_stack(vjust = .5)) +
     geom_text(aes(x = manu,y = 70, label = paste0("Total Vol: ",df2$total_vol)))
install.packages(“dplyr”)
安装软件包(“magrittr”)
图书馆(“magrittr”)
图书馆(“dplyr”)
图书馆(GG2)

manu像这样的东西应该有用。你必须根据你认为合适的情况对百分比的位置进行取整/调整

install.packages("dplyr")
install.packages("magrittr")
library("magrittr")
library("dplyr")
library(ggplot2)


manu <- c('A', 'A', 'A', 'B',"B", "C","C")
brand <- c('A1', 'A2', 'A3', 'B1',"B2", "C1","C2")
vol <- c(10,    25, 30, 45, 15, 25, 20)

df <- data.frame(manu = c('A', 'A', 'A', 'B',"B", "C","C"),
                 brand = c('A1', 'A2', 'A3', 'B1',"B2", "C1","C2"),
                 vol = c(10, 25, 30, 45, 15, 25, 20))


df2 <- df %>% group_by(manu) %>% mutate(total_vol = sum(vol),
                                        percent_vol = vol/total_vol) %>%
          ungroup()

ggplot(data=df2) + 
     geom_bar(aes(x=manu, y=vol, fill=brand),stat = "identity",position = position_stack(reverse = TRUE)) +
     geom_text(aes(x=manu, y=vol, label= paste0("Percent Vol: ", round(percent_vol*100,1),"%")),
              position = position_stack(vjust = .5)) +
     geom_text(aes(x = manu,y = 70, label = paste0("Total Vol: ",df2$total_vol)))
install.packages(“dplyr”)
安装软件包(“magrittr”)
图书馆(“magrittr”)
图书馆(“dplyr”)
图书馆(GG2)

手动ggplot2函数将在ggplot2图形上创建文本。所需的美学是x、y和标签。ggplot2函数
geom_text()
geom_label()
将在ggplot2图形上创建文本。需要的美学是X,Y,和标签。如果这个答案是令人满意的,请考虑接受它作为解决方案。嗨!这几乎就是我要找的。是否可以显示每个多个卷的总卷和百分比卷?非常感谢。显示每个手动组的百分比(按手动组)和总数。你想要所有马努集团加起来的百分比吗?克拉里蒂希的修饰身材!是的,除了每个多组的总数之外,我还希望所有多组的$。所以,我想看到:对于马努A,65%和38%;对于MANU B,60和35%最后,对于MANU C,45和26%,如果这个答案是令人满意的,请考虑接受它作为解决方案。嗨!这几乎就是我要找的。是否可以显示每个多个卷的总卷和百分比卷?非常感谢。显示每个手动组的百分比(按手动组)和总数。你想要所有马努集团加起来的百分比吗?克拉里蒂希的修饰身材!是的,除了每个多组的总数之外,我还希望所有多组的$。所以,我想看到:对于马努A,65%和38%;对于manu B,最终分别为60%和35%,对于manu C,分别为45%和26%