R 在多重直方图中应用比例\颜色\梯度

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

对于一组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
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