#r #graph #sas #boxplot
#r #График #sas #boxplot
Вопрос:
Мне нужна была помощь в построении графиков бок о бок в R или SAS.
Предыстория — мне нужно построить y-переменную по сравнению с x-переменной по группе Z. В настоящее время я могу отображать их отдельно (Existing_PLot) по группе Z в SAS.
Требование должно быть выполнено в соответствии с прилагаемым снимком (Required_Plot).
Мой код в SAS:
proc sgpanel data=example;
panelby groups;
vbox y / category=x group=groups;
run;
Комментарии:
1. Не могли бы вы поделиться своим кодом с некоторыми фиктивными данными и указать, что вы уже пытались? Кроме того, пожалуйста, взгляните сюда .
2. @Dunois Да, конечно! Я использовал следующий код в SAS для создания «existing_plot» — proc sgpanel data=example; panelby groups; vbox y / category= x group=groups; выполнить;
Ответ №1:
То, что вам нужно, можно получить, используя данные в длинном формате, сохраняя переменную id для оси x и перемещая остальные переменные в виде строк. Поскольку данные не включены, я привел пример с использованием 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. Большое вам спасибо! Это именно то, что я искал. Ценю помощь.
2. @snanavati Отлично!
Ответ №2:
То, что вы описываете, используется по умолчанию в SAS с помощью PROC SGPLOT. PROC SGPANEL существует специально для выполнения того, что вы показали в своем первом примере, но обычный процесс — SGPLOT, и он делает то, что вы просите.
proc sgplot data=sashelp.cars;
vbox mpg_city/category=type group=origin;
run;