Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R geom_瓷砖针对不同因素采用不同的渐变比例和颜色_R_Ggplot2 - Fatal编程技术网

R geom_瓷砖针对不同因素采用不同的渐变比例和颜色

R geom_瓷砖针对不同因素采用不同的渐变比例和颜色,r,ggplot2,R,Ggplot2,嗨,我想绘制以下数据帧 d<- data.frame (pid=c("d","b","c"), type=c("rna","rna","rna"), value = c(1,2,3) ) d2 <- data.frame (pid=c("d","b","c"), type=c("dna","dna","dna"), value = c(10,20,30) ) df <- rbind (d,d2) ggplot(df, aes(y=pid, x=type ) ) + geo

嗨,我想绘制以下数据帧

d<- data.frame (pid=c("d","b","c"), type=c("rna","rna","rna"), value = c(1,2,3) )
d2 <- data.frame (pid=c("d","b","c"), type=c("dna","dna","dna"), value = c(10,20,30) )
df <- rbind (d,d2)

 ggplot(df, aes(y=pid, x=type  ) ) + geom_tile(aes(fill = value),
  colour = "white") + scale_fill_gradient(low = "white",
  high = "steelblue") 
这就产生了一个这样的情节,

然而,我希望每个x因子都有自己的颜色梯度,所以理想情况下rna是蓝到白的,而dna是红到白的。有什么办法可以这样做吗?当然,如果不同的梯度是不可能的,那么仅仅是不同的尺度呢?谢谢

ggplot(iris, aes(Sepal.Length, 
                 Petal.Width, 
                 color = Species, 
                 alpha = Sepal.Width)) + 
  geom_point(size = 4)
另见:


另请参见:

以下是将@Brian的建议应用于原始示例的效果。您可能希望分别重新缩放rna和dna值,以使颜色范围更具可比性

p = ggplot(df, aes(y=pid, x=type, fill=type, alpha=value)) +
    geom_tile(colour="white", size=1) + 
    scale_fill_manual(values=c(dna="salmon", rna="steelblue")) +
    theme_bw() +
    theme(panel.grid=element_blank()) +
    coord_cartesian(expand=FALSE)

下面是将@Brian的建议应用于您的原始示例的效果。您可能希望分别重新缩放rna和dna值,以使颜色范围更具可比性

p = ggplot(df, aes(y=pid, x=type, fill=type, alpha=value)) +
    geom_tile(colour="white", size=1) + 
    scale_fill_manual(values=c(dna="salmon", rna="steelblue")) +
    theme_bw() +
    theme(panel.grid=element_blank()) +
    coord_cartesian(expand=FALSE)

谢谢,不过我希望用geom_tile做这件事。想法是一样的。使用alpha=value作为要渐变的变量的美学,使用fill=type作为分类变量。谢谢,不过我希望用geom_tile来实现这一点。想法是一样的。使用alpha=value作为要渐变的变量的美学,使用fill=type作为分类变量。