R ggplot-2x2表格的分组条形图

R ggplot-2x2表格的分组条形图,r,ggplot2,R,Ggplot2,给定一个2x2列联表,单元格中有已计数的数字,如何获得具有堆叠百分比的分组条形图 下面是一些示例代码: species=c(rep("sorgho" , 1) , rep("poacee" , 1) ) condition=rep(c("normal" , "stress") ,1) value=abs(rnorm(4 , 0 , 4)) data2=data.frame(species,condition,value) library(ggplot2) # Stacked Percent

给定一个2x2列联表,单元格中有已计数的数字,如何获得具有堆叠百分比的分组条形图

下面是一些示例代码:

species=c(rep("sorgho" , 1) , rep("poacee" , 1)  )
condition=rep(c("normal" , "stress") ,1)
value=abs(rnorm(4 , 0 , 4))
data2=data.frame(species,condition,value)

library(ggplot2)

# Stacked Percent
ggplot(data2, aes(fill=condition, y=value, x=species)) + 
  geom_bar( stat="identity", position="fill")
但我的数据如下:

        A B
Group C 4 5
      D 1 2
曲线图应该告诉我:A在C组中的百分比是多少,B在D组中的百分比是多少


谢谢。

你在找这样的东西吗

library(reshape2)
library(ggplot2)
data <- matrix(c(4, 1, 5, 2), ncol = 2, dimnames = list(c("C", "D"), c("A", "B")))
data_m <- melt(data, varnames = c("Exp", "Obs"), id.vars = "Exp")

ggplot(data_m %>% group_by(Exp) %>% 
           mutate(perc = round(value/sum(value),2)), 
       aes(x = Exp, y = perc, 
           fill = Obs, cumulative = TRUE)) +
    geom_col() +
    geom_text(aes(label = paste0(perc*100,"%")), 
              position = position_stack(vjust = 0.5))
library(重塑2)
图书馆(GG2)
数据%
变异(perc=四舍五入(值/和(值),2)),
aes(x=Exp,y=perc,
填充=Obs,累计=真)+
geom_col()+
几何图形文本(aes(标签=粘贴0(perc*100,“%”),
位置=位置\堆栈(vjust=0.5))

您只需将数据转换为正确的格式。数据可能重复!这就是我的意思。非常感谢。你能在你的代码中添加:库(dplyr)吗?