我需要一些有关在R或SAS中并排绘制箱线图的帮助。
背景-我需要按Z组绘制y变量与x变量。目前,我能够按SAS中的Z组分别绘制(Existing_PLot)。
要求是按照所附的快照(Required_Plot)实现。
我在SAS中的代码:
proc sgpanel data=example;
panelby groups;
vbox y / category=x group=groups;
run;
答案 0 :(得分:1)
使用长格式的数据(在x轴上保留id变量)并将其余变量作为行移动,可以满足您的需要。由于不包含任何数据,因此我使用iris
,tidyverse
函数和ggplot2
做了一个示例:
library(ggplot2)
library(dplyr)
library(tidyr)
#Data
data(iris)
#Code
iris %>% pivot_longer(-Species) %>%
ggplot(aes(x=Species,y=value,fill=name))+
geom_boxplot()+
theme_bw()+
labs(fill='Var')+
theme(strip.placement = 'outside',
strip.background = element_blank(),
legend.position = 'top',
axis.text = element_text(color='black',face='bold'),
axis.title = element_text(color='black',face='bold'),
legend.text = element_text(color='black',face='bold'),
legend.title = element_text(color='black',face='bold'),
strip.text = element_text(color='black',face='bold'))+
labs(x='Node',fill='Variable')
输出:
答案 1 :(得分:1)
您所描述的是带有PROC SGPLOT的SAS中的默认设置。 PROC SGPANEL专门用于执行您在第一个示例中显示的内容-但是普通的proc是SGPLOT,它可以执行您所要求的操作。
proc sgplot data=sashelp.cars;
vbox mpg_city/category=type group=origin;
run;