我可以使用scale_color_gradient2()在密度图中创建渐变填充。**我想缩小中间的白色区域。**例如,让红色和蓝色在x值为0.5时达到完全饱和。如何做到这一点?
set.seed(123)
x <- rnorm(100)
y <- density(x, n = 2^12)
mydf <- data.frame(x = y$x, y = y$y)
ggplot(mydf, aes(x, y)) + geom_line() +
geom_segment(
aes(xend = x, yend = 0, color = x)
) +
scale_color_gradient2(
low = "red",
mid = "white",
high = "blue",
midpoint = 0
)
字符串
的数据
我可以通过scale_color_denistyn()得到非常接近我想要的结果,但是我失去了指定中点的能力
ggplot(mydf, aes(x, y)) + geom_line() +
geom_segment(
aes(xend = x, yend = 0, color = x)
) +
scale_color_gradientn(
colors = c(rep("red", 5), "white", rep("blue", 5))
# midpoint = 0
)
型
1条答案
按热度按时间ruyhziif1#
您可以使用
scale_color_gradientn
的values
参数来精确控制颜色更改的位置,沿着使用rescale
:字符串
的数据