我希望我的线条和点在最后7个数据点处稍微变浅。我尝试使用alpha
,但是无论我使用多少增量,这些点都太轻了。我可以使用Alpha(如果可以的话,如何使用),还是必须手动弄乱颜色?
我正在使用tidyverse 1.3.0。
示例如下。
foo <- data.frame(x=seq(1:10))
foo$y <- foo$x
foo$alpha <- c(rep(1, 7), rep(0.5, 3))
ggplot(foo, aes(x, y)) + geom_point(aes(alpha=alpha))
alpha = 0.5:
alpha = 0.999,相同的亮度(太亮):
答案 0 :(得分:3)
如果要将alpha
设置为特定值,则必须将其设置为aes以外的参数,例如geom_point(alpha = foo$alpha)
或使用scale_alpha_identity
。试试这个:
foo <- data.frame(x=seq(1:10))
foo$y <- foo$x
foo$alpha <- c(rep(1, 7), rep(0.5, 3))
library(ggplot2)
ggplot(foo, aes(x, y)) +
geom_point(aes(alpha=alpha)) +
scale_alpha_identity()
foo$alpha <- c(rep(1, 7), rep(0.1, 3))
ggplot(foo, aes(x, y)) +
geom_point(aes(alpha=alpha)) +
scale_alpha_identity()
答案 1 :(得分:2)
关于使用alpha获取非常具体的值,请参见this related thread。
如果您不需要“透明度”,而只是想稍微变亮一些颜色,则可以使用shades
或colorspace
包来实现。
两者都有优点和缺点。关于shades包的很酷的事情是,您可以修改整个调色板,如Brewer调色板。
如果只有一种颜色可以修改,则colorspace包会更容易一些。这里使用colorspace包:
library(ggplot2)
library(colorspace)
foo <- data.frame(x = seq(1:10))
foo$y <- foo$x
foo$lighter <- c(rep("black", 7), rep(lighten("black", 0.5), 3))
ggplot(foo, aes(x, y)) +
geom_point(aes(color = lighter)) +
scale_color_identity()