小编dia*_*iaj的帖子

在p值的ggplot geom_tile中格式化颜色和图例

我目前正在尝试使用ggplot2制作一个'热图'来显示一系列p值,但无法弄清楚如何定制实际的颜色分配和图例.

sampledata.m <- melt(sampledata)
sampledata.m$var2 <- as.character(sampledata.m$var2)
sampledata.m$var2 <- factor(sampledata.m$var2, levels=unique(sampledata.m$var2),ordered=TRUE)
sampledata.m$var1 <- as.character(sampledata.m$var1)
sampledata.m$var1 <- factor(sampledata.m$var1, levels=unique(sampledata.m$var1),ordered=TRUE)
Run Code Online (Sandbox Code Playgroud)

这样做是为了保持变量的顺序.

p <- ggplot(sampledata.m, aes(var2, var1)) + 
  geom_tile(aes(fill = value), colour = "transparent") +    
  scale_fill_gradientn(colours=c("light green","dark green", "black"),
    values=rescale(c(0,0.0003,0.05,0.5,1)),limits=c(0,1)))
p + theme_bw(base_size = base_size) + labs(x = "", y = "") + 
  scale_x_discrete(expand = c(0,0)) + 
  theme(legend.position = "bottom", axis.ticks = element_blank(), 
    axis.text.x = element_text(size = base_size * 0.8, angle = 310, 
    hjust = 0, colour = "black"))
Run Code Online (Sandbox Code Playgroud)

这会创建一个漂亮的情节,但我的图例和我的颜色渐变并不代表我指定的重新缩放.原谅我的无知,如果这是一个简单的修复,但我现在只编写了R大约2周.理想情况下,我会喜欢我的情节和传奇,以模仿与本文类似的配色方案和图例标签:http://www.ncbi.nlm.nih.gov/pubmed/22496159 …

r colors legend ggplot2 p-value

5
推荐指数
1
解决办法
2026
查看次数

是否可以在scale_fill_gradient2()中定义"mid"范围?

我正在创建一个热图使用ggplot(),并希望利用3色方案scale_fill_gradient2().我发现,中间颜色太宽,往往会显示我的一些数据(例如使用"黑色").是否可以定义被认为是"中间"的范围,以使其更窄?如果没有,是否有更好的方式可以这样做?

数据集:

structure(list(var1 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, …
Run Code Online (Sandbox Code Playgroud)

r colors legend ggplot2

5
推荐指数
2
解决办法
7021
查看次数

标签 统计

colors ×2

ggplot2 ×2

legend ×2

r ×2

p-value ×1