Сделать цвет точек geom_point немного светлее с помощью альфа?
Я хочу, чтобы мои линии и точки были немного светлее для последних 7 точек данных. Я пытался использовать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))
с альфа =0,5:
с альфа =0,999, такая же яркость (слишком светлая):
2 ответа
Если вы хотите установить 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()
Что касается получения очень конкретных значений с помощью альфа-канала, см. Эту связанную ветку.
Если вам не нужна "прозрачность", а вы просто хотите немного осветлить цвета, вы можете сделать это с помощью shades
или 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()