我有一个数据框data
,其中有多列。
dput(head(data,15))
Counts samples.sample_name samples.class samples.cluster
0 F1S4_161018_001_A01 Glutamatergic LGN Exc BTNL9
2 F1S4_161018_001_B01 Glutamatergic LGN Exc BTNL9
41 F1S4_161018_001_C01 GABAergic LGN Inh NTRK1
0 F1S4_161018_001_E01 Glutamatergic LGN Exc PAX3
1 F1S4_161018_001_F01 Glutamatergic LGN Exc BTNL9
0 F1S4_161018_001_G01 Glutamatergic LGN Exc PAX3
10 F1S4_161018_001_H01 GABAergic LGN Inh LAMP1
25 F1S4_161018_001_F01 GABAergic LGN Inh PAX3
共有15000行,每行是一个单元格。
我想在x轴上按计数(从低到高)排序但也按类排序的每个簇中创建一个计数箱图。因此,首先所有簇按GABA能级计数,其次是谷氨酸能级,等等。
我现在有以下代码行:
library(ggplot2)
ggplot(data[which(data$Counts > 0), ],
aes(x = reorder(samples. cluster, Counts), y = Counts)) +
geom_boxplot(aes(color = samples.class)) +
labs(title = paste('Expression of DMD in the human cortex', brain_area),
x = 'Cluster', y = 'Log2(Counts)') +
geom_text(aes(label = ..count..), y = -1, stat = 'count', colour = 'blue', size = 5) +
coord_cartesian(ylim = c(-1, max(data$Counts))) +
theme(axis.text.x = element_text(angle = 60, hjust = 1),
legend.position = 'none')
我现在有这个情节:
我想要这样的东西:
是否有任何方法可以像之前所述添加一些东西来对箱线图重新排序,而无需更改数据框?由于我有许多具有不同群集名称的不同数据集,仅通过使用向量来“手工”重新排序就需要大量工作,因此我想知道是否还有其他解决方案。