ggplot geom_bar:具有相同名称的多个样本,不是并排绘制的

时间:2015-07-14 02:46:41

标签: r ggplot2 geom-bar

我有一个数据帧,实际上是两个独立的结果合并为一个,每个基因有两个对照样本(FRC190和FRC193)和3个未知数。我想按照你阅读它的顺序绘制这个,用每个基因的颜色分组。

   SampleID RelativeCopy Loci
1    FRC190     2.040265  ABR
2    FRC193     1.961293  ABR
3     FC124     1.828341  ABR
4    FCP920     2.016274  ABR
5   E-NH021     1.919309  ABR
6    FRC190     1.973149 APRT
7    FRC193     2.027592 APRT
8    FCP604     2.086984 APRT
9    FCP686     2.027592 APRT
10  FCP1130     1.936854 APRT

我能做的几乎就是这样,首先如果我使用这个代码,我会按顺序获取数据,除了两个控件一起绘制。

    df <- within(df, SampleID <- factor(
    df$SampleID, levels = c('FRC190', 'FRC193', 'FCP920', 'E-NH021',
   'FC124', 'FCP1130', 'FCP604', 'FCP686' )))

    ggplot(data = df, aes(x=SampleID,y=RelativeCopy, fill = Loci))+scale_fill_grey() +
    geom_bar(stat="identity", position=position_dodge())+ theme_classic()

enter image description here

我尝试的另一个选项是将控件重命名为不同的名称(即FRC190-1和FRC190-2),然后覆盖轴上的名称。 用于此的代码是

df <- within(df, SampleID <- factor(
df$SampleID, levels = c('FRC190', 'FRC193', 'FCP920', 'E-NH021', 'FC124',"FRC190-2",
 "FRC193-2",'FCP1130', 'FCP604', 'FCP686' )))

ggplot(data = df, aes(x=SampleID,y=RelativeCopy, fill = Loci))+scale_fill_grey()+
geom_bar(stat="identity", position=position_dodge()) + theme_classic() +
scale_x_discrete(breaks=c('FRC190', 'FRC193', 'FCP920', 'E-NH021', 'FC124',"FRC190","FRC193", 'FCP1130', 'FCP604', 'FCP686' ))

这解决了控件分组的第一个问题,并允许正确的顺序,但它不允许使用相同的名称。 enter image description here

1 个答案:

答案 0 :(得分:1)

要按顺序绘制,您可以为x:

使用虚拟变量
white_list_attributes

然后要更改x标签,您可以使用p <- ggplot(df, aes(x=1:nrow(df), y=RelativeCopy, fill=Loci)) + geom_bar(stat="identity", position=position_dodge()) + theme_classic() + scale_fill_grey() 的{​​{1}}参数:

labels
  • scale_x_*设置x刻度标签
  • p + scale_x_discrete(labels=df$SampleID, breaks=1:nrow(df), limits=1:nrow(df), name='SampleID') 说我们要为每个条形图打勾
  • labels=df$SampleID如果你把它留下来,情节看起来有点未见(x轴上的比例上升到11而不是breaks=1:nrow(df)的10)
  • limits=1:nrow(df)只需设置x轴的标签。

enter image description here

如果他们互相碰撞,您可能还希望https://github.com/rails/strong_parameters