我有一个数据帧,实际上是两个独立的结果合并为一个,每个基因有两个对照样本(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()
我尝试的另一个选项是将控件重命名为不同的名称(即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' ))
这解决了控件分组的第一个问题,并允许正确的顺序,但它不允许使用相同的名称。
答案 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轴的标签。
如果他们互相碰撞,您可能还希望https://github.com/rails/strong_parameters。