绘图框按ggplot2中的分类因子绘制组

时间:2016-05-31 15:54:47

标签: r ggplot2

我试图绘制每个样本的单个箱图,按性别分组和着色。然而,当我只有两种性别时,显然逻辑的代码以3种颜色绘制。

这是数据集:

https://www.dropbox.com/s/vm6bdiqmymi5jbe/methodissues.csv?dl=0

以下是代码:

VMT=read.csv("methodissues.csv")
ggplot(VMT, aes(x=sex,group=specimen,fill=sex, y=VMT)) +
geom_boxplot(width = 1) +
xlab("specimens")+
ylab("VMT (°C)")+
theme(panel.background = element_rect(fill='transparent', colour='black'),
     panel.grid.major = element_blank(),
     panel.grid.minor = element_blank(),
     axis.title.x = element_text(colour="black"),
     axis.text.x  = element_text(angle=0, vjust=0.5,colour="black", size=14),
     axis.title.y = element_text(colour="black", size=14),
     axis.text.y  = element_text(angle=0, vjust=0.5,colour="black", size=14)
)+ 
theme(legend.justification=c(1,1), legend.position="none")

1 个答案:

答案 0 :(得分:0)

问题是你有“利益冲突”。您希望按specimen对这些框进行分组(这会产生一个基于VMT中最多只有4个值的框。更多内容见下文。)。但是,与此同时,您希望每个框都按性别着色,这在某些情况下是不可能的(例如specimen等于C5MT时),因为{{1}中有一些值与性别specimenM相关的。这是第三种颜色来自哪里。它只是两种颜色的混合,用于着色F

可能的解决方案:

1。按性别填写并将标本放在x轴上

sex

enter image description here

2。由标本构成

require(ggplot2)

 VMT=read.csv("methodissues.csv")

ggplot(VMT, aes(x = specimen, y = VMT, fill = sex)) +
  geom_boxplot(width = 1) 

enter image description here

提醒:

我强烈建议您重新考虑一下您实际想说的内容。我不认为这样的图表是合适的,因为每个框只基于最多4个值,这使得它几乎没有意义(毕竟,你试图传达一些分布感)。一些“盒子”(如ggplot(VMT, aes(x = sex, fill = sex, y = VMT)) + geom_boxplot(width = 1) + facet_grid(~ specimen) specimen = C5MT)甚至只由1个值组成(因此,男性只有3个)。这使得查看图表更加可疑。