Установите альфа точек в ggplot для числового вектора
Я пытаюсь создать сюжет NMDS, используя ggplot. В дополнение к стандартному построению точек (сообществ / сообществ), корпусов и т. Д. Я также хотел бы настроить альфа каждой точки.
Я вычислил вектор числовых значений из 0-1 (называемый "Альфа"), который отражает время проведения опросов, соответствующих каждой точке, и я хотел бы использовать это для изменения альфа каждой точки. До сих пор я использовал вариации на тему:
ggplot() +
geom_point(data = data.scores, aes(x = NMDS1, y = NMDS2, colour =Treatment), size = 3) +
scale_colour_manual(values = c("Burnt" = "black", "Grazed" = "tan4","Control" = "green4")) +
scale_alpha_manual(values = Alpha) +
geom_polygon(data = hull.data, aes( x = NMDS1, y = NMDS2, colour = Treatment),
linetype = "dashed", fill = NA) +
coord_equal() +
theme_bw() +
theme(panel.border = element_blank(), panel.grid.major = element_blank(),
panel.grid.minor = element_blank(), axis.line = element_line(colour = "black"),
legend.position="top")
Это дает мне только графики, где альфа всех точек равна 1, альфа не равна 1, но имеет одинаковое значение (предположительно первое значение в моем векторе) или сообщения об ошибках. Кто-нибудь знает, что я делаю не так?
Для справки я смог довольно легко создать то, что я хочу, используя базовую графику R, но мне нужно, чтобы мой график был графикой ggplot:
1 ответ
ggplot()
синтаксис ожидает, что отображаемые значения для слоя будут переданы в этом слое, поэтому в geom_point()
, а не путем добавления масштаба. Так что сейчас вы не определяете, к каким слоям вы хотите применить альфа-шкалу, поэтому все отображаются как alpha = 1
(по умолчанию).
Вы можете просто использовать необработанный вектор непосредственно в geom_point()
, Используя воспроизводимый пример с mtcars
:
library(ggplot2)
set.seed(1)
# sim your Alpha
Alpha <- runif(nrow(mtcars))
ggplot(data = mtcars, aes(mpg, hp)) +
geom_point(alpha = Alpha)
scale_alpha_manual()
не будет иметь никакого влияния на этот сюжет, так как вы ничего не отображаете с aes(alpha = ...)
,