分组boxplot r ggplot2

HCA*_*CAI 3 r ggplot2 boxplot

我有5列数值数据(Equipment,Hyiene.items等)和1列分类数据(A或D).我想制作一个按类别分组的数字数据的分组箱图,但我找不到方法:

 head(sc)
  Equipment Hygiene.items Patient Near.bed Far.bed Care
1         0             0       1        5       1    D
2         1             4       1        2       0    D
3         3             1       1        2       0    D
4         0             2       2        3       1    A
5         1             2       1        5       2    A
6         1             2       1        1       1    A
Run Code Online (Sandbox Code Playgroud)

boxplot(sc~sc$Care)看起来最合适的方式对吗?我喜欢ggplot2,但看起来我不能这样做:

ggplot(sc, aes(y=sc)) + 
  geom_boxplot(aes(fill=Care))
Run Code Online (Sandbox Code Playgroud)

编辑:我喜欢的外观:

我认为我所追求的是像我在Matlab(很久以前)制作的那样:

在此输入图像描述

或者这里的第四张图:Plotly

在此输入图像描述

到目前为止我所拥有的:

library(ggplot2)
library(RColorBrewer)

ggplot(melt_A,aes(x=Care,y=value,fill=Care))+geom_boxplot(ylim=c(1,6,1))+facet_grid(~variable)+
labs(x = "Care", y = "Surface contacts",color="Care" )+
  scale_y_continuous(limits = c(-0, 6))+
  scale_fill_brewer(palette="Purples")+
  theme_bw()+
  theme(strip.background=element_rect(fill="black"))+
  theme(strip.text=element_text(color="white", face="bold"))
Run Code Online (Sandbox Code Playgroud)

如何将护理标签从D,H,Me更改为其他内容?例如直接护理,家务管理,药物治疗等...

固定:

在这里找到答案:堆栈

我在ggplot命令中添加了以下内容

scale_fill_brewer(palette="Purples",
  labels = c("Direct care", "Housekeeping","Medication    round","Mealtimes","Miscellaneous care","Personal care"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Mat*_*ina 14

您的data.frame格式不正确.我将您的数据命名为"A".你需要

library(reshape2)
melt_A<-melt(A)
Run Code Online (Sandbox Code Playgroud)

现在,您将"Care"变量用作ID,并将data.frame中值的变量用于ggplot2

melt_A
   Care      variable value
1     D     Equipment     0
2     D     Equipment     1
3     D     Equipment     3
4     A     Equipment     0
5     A     Equipment     1
6     A     Equipment     1
7     D Hygiene.items     0
8     D Hygiene.items     4
9     D Hygiene.items     1
10    A Hygiene.items     2
11    A Hygiene.items     2
12    A Hygiene.items     2
13    D       Patient     1
14    D       Patient     1
15    D       Patient     1
16    A       Patient     2
17    A       Patient     1
18    A       Patient     1
19    D      Near.bed     5
20    D      Near.bed     2
21    D      Near.bed     2
22    A      Near.bed     3
23    A      Near.bed     5
24    A      Near.bed     1
25    D       Far.bed     1
26    D       Far.bed     0
27    D       Far.bed     0
28    A       Far.bed     1
29    A       Far.bed     2
30    A       Far.bed     1
Run Code Online (Sandbox Code Playgroud)

这是您可能想要对数据进行的一个可能的绘图

ggplot(melt_A,aes(x=Care,y=value,fill=Care))+
geom_boxplot()+
facet_wrap(~variable)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述