我有一个像这样的融化数据框:
> head(Merged_Columns.m)
SYMBOL Cond logCPM variable value
1 Baz2b T 9.723115 0h 40.56290
2 Ccdc111 T 3.460456 0h 6.00879
3 Zfp456 T 4.809024 0h 2.22136
4 Itga8 T 4.633377 0h 4.69537
5 Tpm4 T 8.384930 0h 44.85390
6 H2-K1 T 9.333838 0h 218.91800
>
我的情节代码是
ggplot(Merged_Columns.m, aes(variable, value, colour=Cond)) + geom_point() +
facet_wrap(~SYMBOL,ncol = 2)
但是我想对情节进行排序,以便SYMBOLS
获得以最高logCPM
排序的情节图。
答案 0 :(得分:2)
ggplot中的绘图顺序通常取决于您使用的因子中的级别顺序。其他问题向您展示了这种情况,例如Plotting order within a faceted dotchart in ggplot2
在您的特定情况下,您需要按SYMBOL
订购logCPM
。我将展示如何使用您的小样本实现这一目标:
txt <- "SYMBOL Cond logCPM variable value
1 Baz2b T 9.723115 0h 40.56290
2 Ccdc111 T 3.460456 0h 6.00879
3 Zfp456 T 4.809024 0h 2.22136
4 Itga8 T 4.633377 0h 4.69537
5 Tpm4 T 8.384930 0h 44.85390
6 H2-K1 T 9.333838 0h 218.91800"
df <- read.table(text=txt)
df$SYMBOL
[1] Baz2b Ccdc111 Zfp456 Itga8 Tpm4 H2-K1
Levels: Baz2b Ccdc111 H2-K1 Itga8 Tpm4 Zfp456
您可以看到该因子的等级排序可能与您当前在绘图中获得的顺序相同。要通过降序logCPM
来更改此排序:
df$SYMBOL <- factor(df$SYMBOL, levels=df$SYMBOL[order(-df$logCPM)])
df$SYMBOL
[1] Baz2b Ccdc111 Zfp456 Itga8 Tpm4 H2-K1
Levels: Baz2b H2-K1 Tpm4 Zfp456 Itga8 Ccdc111
现在对这些级别的排序方式不同,这应该反映在情节中。