每个x变量并排绘制箱线图

时间:2020-10-21 13:25:39

标签: r graph sas boxplot

我需要一些有关在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; 

2 个答案:

答案 0 :(得分:1)

使用长格式的数据(在x轴上保留id变量)并将其余变量作为行移动,可以满足您的需要。由于不包含任何数据,因此我使用iristidyverse函数和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')

输出:

enter image description here

答案 1 :(得分:1)

您所描述的是带有PROC SGPLOT的SAS中的默认设置。 PROC SGPANEL专门用于执行您在第一个示例中显示的内容-但是普通的proc是SGPLOT,它可以执行您所要求的操作。

proc sgplot data=sashelp.cars;
  vbox mpg_city/category=type group=origin;
run;