我正在尝试使用比例尺创建具有不同Alpha颜色的点
我的数据框架:
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 $ membership_prob)作为我的货盘的Alpha级别的方法,即df2 $ cluster + 1。
可重复使用ggplot的示例(颜色中的Alpha级别):
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)
答案 0 :(得分:1)
@Override
public int compareTo(image compareImg) {
int compareMatches=((image)compareImg).getGoodMatches();
return compareMatches - this.goodMatches;
}
答案 1 :(得分:0)
阅读Jon Spring的答案后,我在ggplot中提供了不影响标签alpha的解决方案:
library(ggplot2);
ggplot(df, aes_string("V1", "V2", color = "cluster+1")) +
geom_point(shape = 21, size = 4,fill = NA) + #solid points with no fill
geom_point(shape = 20, size = 3, aes_string(x="V1", y="V2", color="cluster+1", alpha = "a$V1")) #fill with alpha values