结合连续填充(颜色)和alpha刻度的指南

时间:2014-06-28 02:19:01

标签: r ggplot2

在ggplot2中,我正在创建一个geom_tile图,其中颜色和alpha都随同一个变量而变化,我想制作一个单独的指南,显示它们在图上的显示方式,而不是两个单独的导板。

library(ggplot2)

x <- seq(-10,10,0.1)
data <- expand.grid(x=x,y=x)
data$z <- with(data,y^2 * dnorm(sqrt(x^2 + y^2), 0, 3))
p <- ggplot(data) + geom_tile(aes(x=x,y=y, fill = z, alpha = z))
p <- p + scale_fill_continuous(low="blue", high="red") + scale_alpha_continuous(range=c(0.2,1.0))
plot(p)

这会产生一个带有两个指南的图形:一个用于颜色,一个用于alpha。我想只有一个指南,颜色和alpha在图中的方式一致变化(因此颜色变为蓝色,淡出)

对于这个图,我可以通过改变饱和度而不是alpha来实现类似的效果,但是我正在使用它的真实项目,我将覆盖这个图层在地图上,并且想要改变alpha所以对于较小的z变量值,地图更清晰可见。

1 个答案:

答案 0 :(得分:2)

我认为您不能将连续比例​​组合成一个图例,但您可以组合离散比例。例如:

# Create discrete version of z
data$z.cut = cut(data$z, seq(min(data$z), max(data$z), length.out=10))

ggplot(data) +  
  geom_tile(aes(x=x, y=y, fill=z.cut, alpha=z.cut)) +
  scale_fill_hue(h=c(-60, -120), c=100, l=50) +
  scale_alpha_discrete(range=c(0.2,1))

您当然可以在不同的,可能更方便的值上剪切z,并将scale_fill_hue更改为您喜欢的任何颜色范围。

enter image description here