我可以在并排堆积的条形图上找到的大多数信息处理的实例是,沿着x轴为每个变量重复一些变量(并排条的数量) - 请参阅:1,2,3 ,4,5,6 . 在这些情况下,他们使用ggplot和 besides=TRUE
.
我有一个更复杂的例子,我认为这需要像这两个例子一样:7&8 .
快速背景(对于那些感兴趣的人?):我认为看看绝对比例是有意义的,因为在整个蛋白质组下拉中发现的蛋白质的总量会更高(见图:absolute protein comparison sketch) . 为了避免这个问题,我除以每次下拉中发现的蛋白质总数,以得到每个亚细胞位置的蛋白质的相对比例 .
使用这些相对比例,我在gist中使用以下代码生成了以下数据的堆叠条形图:
df1 <- read.csv("data.csv") # Load data.frame of the data
df2 <- melt(df1, # Reshape the data from
id.vars = "subcellular_location", # wide format into long format
variable.name = "cell_line", # (i.e. tidy data)
value.name = "relative_proportion")
出于某种原因,这并没有改变变量名称或值名称( Headers ) - 它们仍然被称为“变量”和“值”?所以我不得不通过以下方式重命名列 Headers .
names(df2) <- c("subcellular_location", "cell_line", "relative_proportion")
由于我需要定制添加颜色的许多亚细胞位置,此外我将它们按类似位置(例如蓝色核)分组 .
p <- ggplot() +
geom_bar(aes(x = cell_line, y = percentage, fill = subcellular_location),
data = df2, stat="identity")
p +
coord_flip() +
scale_fill_manual(values = c("#bd5db0","#9ae17c", "#be0024", "#7388ff", "#c456b7",
"#8ed470", "#7ec361", "#7d7304", "#f87a00", "#d543c7",
"#bead47", "#d148c3", "#da8836", "#e28504", "#d93eca",
"#c720b9", "#bc07ae", "#a40098", "#9a008e", "#e8d448",
"#104ed7", "#2c4ecc", "#00428c", "#393c6d", "#173b8f",
"#3f4c96", "#9ba2f5", "#727bcc", "#e59c5f", "#790000",
"#045d00", "#f9ad6f"))
看这里的图片:stacked barplot
核心蛋白质组下拉以黄色突出显示 . 理想情况下,我想要做的是将这个条形图分成4个部分 - 每个细胞系一个部分 . 我按照参考文献7中的说明进行分面,但是收到错误 .
首先,我将数据帧分成4个独立的整洁数据帧(例如下面):
K562 <- read.csv("K562-relative.csv")
K562 <- melt(K562, id.vars = "subcellular_location") # Reshape the data into tidy form
names(K562) <- c("subcellular_location", "cell_line", "relative_proportion")
等等
比我为细胞系创建了一个载体:
cell <- sample(c("HAP1","K562","A673","MDS"))
当我尝试以下代码时,我收到一个错误:
ref_by_cell <- data.frame(HAP1 = HAP1, K562 = K562, A673 = A673, MDS = MDS, cell = cell)
data.frame中的错误(HAP1 = HAP1,K562 = K562,A673 = A673,MDS = MDS,参数意味着行数不同:576,544,64,4
我很感激任何有关显示此信息的分面或其他想法的帮助 .
谢谢!
1 回答
我不完全确定你想要什么,但如果你想要通过每个cell_line值的第一部分...
数据(从您的主要链接复制;下次请使用dput以便其他人可以更轻松地重现您的示例):