我想通过使ggplot2图表上的某些点不那么透明,而其余点逐渐淡出背景来使它们突出。但是,无论我给点集指定两个什么alpha值,它们的相对透明度都是相同的。
这里是0.8
与0.7
:
x <- mtcars
x$opacity <- ifelse(x$cyl == 6, 0.8, 0.7)
ggplot(x, aes(x = wt, y = mpg, color = cyl, alpha = opacity)) +
geom_point()
这是0.8
与0.1
的外观相同:
x$opacity <- ifelse(x$cyl == 6, 0.8, 0.1)
ggplot(x, aes(x = wt, y = mpg, color = cyl, alpha = opacity)) +
geom_point()
我如何微调该相对alpha,以使这两个集合的透明度更接近?现在,两个数字的值似乎无关紧要。具体来说,在这种情况下,我希望较暗的点(具有较高的alpha值)更加透明。
将scale_alpha_continuous添加到绘图中并定义范围。例如
scale_alpha_continuous(range = c(0.7, 0.8))
由于您正在尝试将实际的Alpha值传递给美学映射,因此请务必使用
scale_alpha_identity()
否则,ggplot将重新调整您的值,就像它自动为您创建颜色一样。
您正在将值0.7和0.8映射到alpha,而不必using将其用于alpha。一种更快的方法是映射条件,然后设置alpha:
library(ggplot2)
ggplot(mtcars, aes(x = wt, y = mpg, color = cyl, alpha = cyl == 6)) +
geom_point() +
scale_alpha_discrete(range = c(0.2, 0.8))
#> Warning: Using alpha for a discrete variable is not advised.
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLmltZ3VyLmNvbS9CMXBOUEZELnBuZyJ9” alt =“带有alpha的点”>“>