在多个直方图中应用scale_colour_gradient

时间:2016-02-08 12:58:16

标签: r ggplot2 histogram data-representation

对于一组8个基因,我有三种不同方法的表现和覆盖率数据,我想同时代表两种测量方法。我在考虑在y轴和覆盖范围内绘制性能作为scale_colour_gradient,如:

enter image description here

数据:

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")

enter image description here

但这不是一样的

1 个答案:

答案 0 :(得分:3)

您可以在ggplot函数中指定颜色和alpha参数。 使用copy&amp; amp;读取您的数据。糊。将其转换为适合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")