相关疑难解决方法(0)

如何获得具有相同比例的多个ggplot2 scale_fill_gradientn?

library(ggplot2)
library(cumplyr)
library(scales)
library(RColorBrewer)


myPalette <- colorRampPalette(rev(brewer.pal(11, "Spectral")))

x   = 1:5
y   = 1:5
pts = cartesian_product(c('x','y'))
d1 = cbind(pts, runif(nrow(pts),min=0,max=1), 1)
d2 = cbind(pts, runif(nrow(pts),min=0,max=4), 2)
colnames(d1) = colnames(d2) = c("x","y","val","k")
d  = rbind(d1,d2)

p1 <- ggplot(d1)
p1 <- p1 + geom_tile(aes(x = x, y = y, fill = val))
p1 <- p1 + scale_fill_gradientn(colours = myPalette(4))
p1

p2 <- ggplot(d2, aes(x = x, y = y, fill = val))
p2 <- p2 + geom_tile(aes(x = x, y = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

9
推荐指数
1
解决办法
8884
查看次数

是否可以在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
查看次数

ggplot2正负值不同的颜色渐变

我使用R(3.0.1)和ggplot2(0.9.3.1).我有包含正值和负值的数据,我想获得一个geom_tile图,其中正数和负数有不同的颜色标度渐变(例如,正数从红色变为黄色,负数从蓝色到负数)青色).我能够使用scale_fill_gradientn(见下文)接近我想要的东西,但这导致一个连续的渐变,在中点(0)包括"白色".我需要避免这些中点颜色,因此不知何故需要在零处"破坏"渐变.换句话说,我需要两个连续的梯度(一个用于正值,一个用于负值),其具有零离散度.有帮助吗?

dat <- data.frame(Row = rep(x = LETTERS[1:5], times = 10)
 , Col = rep(x = LETTERS[1:10], each = 5)
 , Y = runif(n = 50, min = -1, max = 1))

p <- ggplot(data =  dat, aes(x = Row, y = Col)) + 
  geom_tile(aes(fill = Y)) +
  scale_fill_gradientn(colours=c("blue","cyan","white", "yellow","red"), values=rescale(c(-1,0,1)))
Run Code Online (Sandbox Code Playgroud)

r ggplot2

3
推荐指数
2
解决办法
6791
查看次数

标签 统计

ggplot2 ×3

r ×3

colors ×1

legend ×1