R 一个图形中两个不同数据的箱线图

R 一个图形中两个不同数据的箱线图,r,ggplot2,boxplot,R,Ggplot2,Boxplot,我有一个数据帧df,它包含两列:a,B 我想要一个在Y轴上包含A和B的图形。注意:我不想将A和B组合在一起。每一个都有自己的结果 因此,对于x轴的每个单个值,所需的输出应包含两个框(一个用于A,一个用于B),并彼此相邻(偏移=0) df的示例: A B 200. 30. 100. 26. 27. 25. 25. 22. 40. 21. 20. 18. 我不想使用重塑或互动

我有一个数据帧
df
,它包含两列:
a
B

我想要一个在Y轴上包含
A
B
的图形。注意:我不想将
A
B
组合在一起。每一个都有自己的结果

因此,对于x轴的每个单个值,所需的输出应包含两个框(一个用于
A
,一个用于
B
),并彼此相邻(偏移=0)

df的示例

A      B

200.  30.        
100.  26.               
27.   25.       
25.   22.        
40.   21.       
20.   18. 
我不想使用重塑或互动。我宁愿只将ggplot与boxplot一起使用

ReadData<-read.csv("data.csv", header=T)
A<-ggplot(ReadData,aes(A)+
   geom_boxplot(ReadData$A)

B<-ggplot(ReadData,aes(B)+ 
   geom_boxplot(ReadData$B)

print(A)
print(B)
ReadData数据:

df <- read.table(text="A      B
200.  30.        
100.  26.               
27.   25.       
25.   22.        
40.   21.       
20.   18. ", header = TRUE)

基于上一个答案,并生成一个箱线图

df <- read.table(text="A      B
200.  30.        
100.  26.               
27.   25.       
25.   22.        
40.   21.       
20.   18. ", header = TRUE)

ggplot(
    data = df %>% 
      pivot_longer( 
        cols = c(A, B),
        names_to = "x",
        values_to = "y",
      ),
    aes(x = x, y = y, fill = x)) +
  geom_boxplot(outlier.colour = "red", show.legend = FALSE)
df%
长(
cols=c(A,B),
名称_to=“x”,
值_to=“y”,
),
aes(x=x,y=y,填充=x))+
geom_箱线图(outlier.color=“red”,show.legend=FALSE)


您可能希望在比例、添加抖动点等方面对此进行一些调整。

您是指单个组吗?有,但这是一个小技巧,答案中有一个打字错误
rownames(stack(df))
not
rownames(df)
。此外,如果将
x
的值从
rownames
更改为
ind
aes(x=ind,y=values,fill=ind)+geom_箱线图()
),则可以生成箱线图
df <- read.table(text="A      B
200.  30.        
100.  26.               
27.   25.       
25.   22.        
40.   21.       
20.   18. ", header = TRUE)

ggplot(
    data = df %>% 
      pivot_longer( 
        cols = c(A, B),
        names_to = "x",
        values_to = "y",
      ),
    aes(x = x, y = y, fill = x)) +
  geom_boxplot(outlier.colour = "red", show.legend = FALSE)