如何1)在ggplot2中分离长面标题,2)改变x轴上列的顺序?

时间:2014-02-13 21:52:20

标签: r ggplot2

我是新的R用户。所以我有这个蛋白质组学数据,从10个患者在3个不同的时间点测量超过100个蛋白质水平。对于这些100多种蛋白质中的每一种,我使用ggplot2制作箱形图面(x =时间点,y =表达水平)。问题是,蛋白质名称(刻面的标题)非常长,因此它们与它们旁边的那些重叠。因为有这么多我无法真正使用" \ n"手动将它们分成两行。有一个聪明的方法吗?

另外,我想改变x轴上三个时间点的顺序。它最初按字母顺序显示,但我希望它具有更多的生物学意义。

非常感谢提前。

1 个答案:

答案 0 :(得分:1)

这是你的想法吗?

set.seed(1)
# make up some data...
long.names <- c("Very Long Facet Label","Very, Very, Extremely Long Facet Label")
gg <- data.frame(x=rep(LETTERS[1:6],each=10),y=rnorm(120), z=rep(long.names,each=60))

library(ggplot2)
ggplot(gg) + geom_boxplot(aes(x,y))+facet_grid(.~z)

gg$x.ordered=factor(gg$x,levels=LETTERS[6:1])
gg$wrap <- sapply(strwrap(gg$z,20,simplify=F),paste,collapse="\n") # word wrap
ggplot(gg) + geom_boxplot(aes(x.ordered,y))+ facet_grid(.~wrap)