Я пытаюсь использовать шкалу для создания точек с разными цветами альфа
Мои данные. Кадры:
df2$membership
[1] 0.34185026 0.15610992 0.04991413 0.00000000 0.52687792 0.16631913 0.11915588 0.26531666 0.16631913 0.34312613 0.39910748 0.00000000
[13] 0.31770686 0.37701944 0.19777656 0.00000000 0.28141323 0.38329395 0.00000000 0.45098905 0.15583159 0.00000000 0.15610992 0.00000000
[25] 0.45297710 0.38409023 0.38329395 0.06272793 0.28141323
df$cluster+1
[1] 3 2 3 1 3 3 3 3 3 3 3 3 3 3 3 2 3 3 1 3 3 1 2 1 3 3 3 2 3
df
V1 V2
1 -60.950322 3.268223
2 120.989186 -18.171861
3 -100.891471 -54.566570
4 123.853486 -31.076373
5 47.068591 21.517879
6 -96.289311 -32.327825
7 -55.133477 -23.899109
etc
Я сделал это с помощью следующего кода с plot ()
plot(df, col=df2$cluster+1, pch=21, cex = 2)
colors <- mapply(function(col, i) adjustcolor(col, alpha.f = df2$membership_prob[i]),
palette()[df2$cluster+1], seq_along(df2$cluster))
points(df, col=colors, pch=20, cex = 2) +
text(df, labels = rownames(df), pos = 4)
Что дает мне:
Но у меня проблемы с этим в ggplot2, потому что я уже делаю все остальные мои графики в ggplot2, и эстетика сильно отличается.
Мне нужен способ использования непрерывной шкалы (df2 $ members_prob) в качестве альфа-уровня для моей паллеты, который представляет собой df2 $ cluster + 1.
Воспроизводимый пример того, что мне нужно с ggplot (альфа-уровни в цвете):
library("dbscan")
data("moons")
cl <- hdbscan(moons, minPts = 5)
plot(moons, col=cl$cluster+1, pch=21)
colors <- mapply(function(col, i) adjustcolor(col, alpha.f = cl$membership_prob[i]),
palette()[cl$cluster+1], seq_along(cl$cluster))
points(moons, col=colors, pch=20)