R 在多重直方图中应用比例\颜色\梯度
对于一组8个基因,我有三种不同方法的性能和覆盖率数据,我想同时表示这两种测量值。我在考虑在y轴上绘制性能,并将覆盖率绘制为比例\颜色\梯度,类似于: 和数据:R 在多重直方图中应用比例\颜色\梯度,r,ggplot2,histogram,data-representation,R,Ggplot2,Histogram,Data Representation,对于一组8个基因,我有三种不同方法的性能和覆盖率数据,我想同时表示这两种测量值。我在考虑在y轴上绘制性能,并将覆盖率绘制为比例\颜色\梯度,类似于: 和数据: GENES P1 P2 P3 coverage1 coverage2 coverage3 gene1 0.520 0.43 0.68 0.826 1.000 0.84 gene2 0.410 0.48 0.91 0.911 1.000 0.96 g
GENES P1 P2 P3 coverage1 coverage2 coverage3
gene1 0.520 0.43 0.68 0.826 1.000 0.84
gene2 0.410 0.48 0.91 0.911 1.000 0.96
gene3 0.240 0.65 0.82 0.833 1.000 0.95
gene4 0.470 0.535 0.81 0.853 1.000 0.77
gene5 0.590 0.677 0.84 0.813 1.000 0.89
gene6 0.370 0.55 0.54 0.753 1.000 0.82
gene7 0.420 0.56 0.78 0.867 1.000 0.91
gene8 0.550 0.638 0.76 0.830 1.000 0.83
有谁能给我一些如何做的指导方针吗?我见过每个图都有一个单一比例梯度的例子,但找不到这样的例子。
您知道同时表示这两个信息维度的其他想法吗
谢谢
编辑:@Jimbou我尝试过类似的方法,但没有达到我预期的效果:我使用melt
格式化了数据,然后更改了colnames以避免混淆并绘制它:
colnames(d1) <- c("GENES", "performer", "performances","coverager","coverages")
ggplot(d1,aes(GENES, fill=performer, alpha=coverager)) + geom_bar(aes(weight=performances), position ="dodge")
colnames(d1)您只需在ggplot函数中指定颜色和alpha参数即可。
使用“复制和粘贴”读取数据。将其转换为适合ggplot的数据格式,并绘制条形图
d <- read.table("clipboard",header=T)
library(reshape2)
d1 <- melt(d[,1:4])
d2 <- melt(d[,c(1,5:7)],value.name = "cov")
d1 <- cbind(d1,d2[,-1])
head(d1)
GENES variable value var_cov cov
1 gene1 P1 0.52 coverage1 0.826
2 gene2 P1 0.41 coverage1 0.911
3 gene3 P1 0.24 coverage1 0.833
4 gene4 P1 0.47 coverage1 0.853
5 gene5 P1 0.59 coverage1 0.813
6 gene6 P1 0.37 coverage1 0.753
#Plot
ggplot(d1,aes(GENES,fill=variable,alpha=cov))+
geom_bar(aes(weight=value),position = "dodge")
d谢谢,@jimbou。我以上对你建议的回答应该是alpha=coverage
?工作服看起来像是三级要素。你说得对!谢谢你,@Jimbou