相关疑难解决方法(0)

ggplot2每个美学的多个尺度/传说,重新审视

我有一个例子,我想使用ggplot突出显示序列比对的几个属性.我正在使用geom_tile并希望有两组不同颜色的瓷砖用于两个分数属性.我只能想象一个.

我知道每个美学一个尺度的限制(以及它背后的逻辑),但也许有人知道如何在这样的情况下破解它,在一个'情节'中有不同的色标是有意义的.

也许手动添加Grobs,但我不知道从哪里开始......

另外一个问题:由于某种原因,override.aes=list(shape = "A")这不起作用,任何想法为什么?

还有一种方法:任何按比例缩放文本大小(或相反)的文本缩放方法?

library(ggplot2)
library(grid)

pd = data.frame(
  letters = strsplit("AGTGACCGACTATCATAGTGACCCAGAATCATAGTGACCGAGTATGAT", "")[[1]],
  species = rep(c("Human", "Armadillo", "Porcupine"), each=16),
  x       = rep(1:16, 3),
  change  = c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
              0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,
              0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0),
  score1  = c(0,0,0,0,0,0,1,1,2,2,2,3,3,3,4,3,
              0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,
              0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
  score2  = c(0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,
              0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,
              0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0)
)


ggplot(pd[pd$score1 != 0,], aes(x=x, y=species)) +
  coord_fixed(ratio = 1.5, xlim=c(0.5,16.5), ylim=c(0.5, 3.5)) +
  geom_tile(aes(fill=score1)) +
  scale_fill_gradient2("Score 1", limits=c(0,4),low="#762A83", mid="white", high="#1B7837", guide=guide_colorbar(title.position="top")) +
  geom_text(data=pd, aes(label=letters, color=factor(change)), size=rel(5), family="mono") +
  scale_color_manual("Change", values=c("black", "#F2A11F"), labels=c("None", "Some"), guide=guide_legend(direction="vertical", …
Run Code Online (Sandbox Code Playgroud)

r data-visualization ggplot2

16
推荐指数
2
解决办法
5594
查看次数

为负值和正值定义颜色渐变 scale_fill_gradientn()

R version 3.1.1 (2014-07-10) Platform: i386-w64-mingw32/i386 (32-bit)

我正在处理ggplot2()值从 -1 到 +1的热图。我想实现负值具有从深蓝色(-1)到浅蓝色(-0.00000001)的蓝色渐变和从浅红色(0.00000001)到深红色(1)的红色渐变。小值不应淡入白色,因为零应为白色,并且 0 和小值之间应有明显的对比度。NA 值应为灰色。

我试过了scale_fill_gradient2()scale_fill_gradientn()也用rescale().

已经讨论了一个类似的主题,但我无法解决我的问题:

是否可以在 scale_fill_gradient2() 中定义“中间”范围?

ggplot2正负值不同颜色渐变

数据(正负):

data.clean <- structure(list(`1` = c(-1, -1, -1, -1, -1, -1, -1, -1, -1, -1
), `2` = c(-0.742791272678673, -0.637008381689233, -0.678722760290557, 
-0.374604178402531, -0.752540076766764, -0.741425721633379, -0.790950497422989, 
-0.822779886175826, -0.696227459496285, -0.698453447846652), 
`3` = c(-0.525688574069743, -0.43137330754352, -0.363377723970944, 
-0.210140400587573, -0.532475351847671, -0.587485278919413, 
-0.683607015861601, -0.630387125338536, -0.494214515339252, 
-0.566343042071197), `4` = c(-0.311771191820642, -0.320141843971631, 
-0.20021186440678, -0.0798166672550588, -0.369634479817365, 
-0.452880524911674, -0.526639098645571, -0.401771184676448, 
-0.278097123757212, -0.367096091610655), …
Run Code Online (Sandbox Code Playgroud)

plot gradient r rescale ggplot2

8
推荐指数
1
解决办法
7194
查看次数

标签 统计

ggplot2 ×2

r ×2

data-visualization ×1

gradient ×1

plot ×1

rescale ×1