我有ggplot中的几列数据我希望绘制在boxplot中。每个方框代表一列数据。这些箱子应该以四个一组(红,绿,蓝,黄)着色,即每2盒被染成绿色每四个被标记为黄色等ggplot中的着色boxplot列以重复模式
样本数据
X1 X1.1 X1.2 X1.3 X2 X2.1 X2.2 X2.3
1 2 3 4 3 2 3 1
2 4 5 5 5 2 1 2
2 3 2 1 2 1 2 5
我得到的最接近使用重复的颜色值填充矢量colorVec并尝试将其应用于ggplot。
graph<-ggplot(expressionframemelted, aes(x = Var2, y=value)) +
geom_boxplot(aes(fill = factor(Var2)))+
ggtitle("Expression Values and Medians")+xlab(valueAmountsP)+ylab("Counts log 10")+
stat_summary(fun.y = median, geom = "point", position = position_dodge(width = .9),
size = 6, shape = 4, show_guide = F)+
theme(axis.text.x=element_text(angle=90))+
scale_x_discrete(labels=nameVecGraph)+
scale_y_log10()+
scale_fill_manual(values = colorVec)
的问题是,如果列值是非常低或零到一箱未对剧情ggplot由于某种原因出现使用填充他们跳过,并继续到下一个塔的点拧紧着色的顺序。
任何更简单的方法呢?
编辑:我试过epi的答案,但ggplot跳过低值的列和混乱的颜色顺序的问题依然存在。我发现这可能是由于使用了对数刻度。例如尝试
ggplot(dfmelt, aes(variable, value, fill=variable)) +
geom_boxplot() +
theme(axis.text.x=element_text(angle=90))+
scale_x_discrete(labels=c('C1','C2','C3','C4','C5','C6','C7','C8'))+
scale_y_log10()+
scale_fill_manual(values=rep(c("red","green","blue","yellow"),2))
上
df = read.table(text="X1 X1.1 X1.2 X1.3 X2 X2.1 X2.2 X2.3
1 0 3 4 3 2 3 1
2 'NA' 5 5 5 2 1 2
2 'NA' 2 1 2 1 2 5", header=TRUE)
喜的是%>%? Rstudio咳嗽它,我试图在谷歌上查找它,但我找不到它。 –
我的不好;我忘了在我的代码中包含'dplyr'软件包。我现在修好了。 '%>%'是一个允许你将功能链接在一起的运算符。参见['dplyr' vignette](https://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html)。如果您想避免在ggplot调用中执行此操作,可以将数据融化为ggplot外的长格式。只要执行'df.melt = melt(df)',然后在ggplot中使用'df.melt'而不是'df'。 – eipi10
嗨,问题是如果我使用日志10规模ggplot将出于某种原因跳过低价值列拧紧颜色的顺序。看看编辑 –