我想在我的 ggplot 中添加一個 alpha,但不影響圖例的 alpha。當前的解決方案是添加 : 的覆寫guides(color = guide_legend(override.aes = list(alpha = 1)))。這適用于設定 alpha=1 但將圖例比例更改為離散點而不是比例。
如何在保持完全可見性和圖例中的實際比例的同時更改色標的 alpha?
示例代碼:
library(ggplot2)
###Generate Mock Data ###
df<- data_frame(y=seq(1:100), x=seq(1:100), z=seq(1:100))
###Plot without Alpha ###
df %>% ggplot(aes(x=x, y=y, color=z))
geom_point()
scale_color_viridis_c()

###Plot with Alpha showing alpha on legend with continuous scale ###
df %>% ggplot(aes(x=x, y=y, color=z))
geom_point()
scale_color_viridis_c(alpha=0.01)

###Plot with Alpha showing alpha=1 on legend but scale changed to discrete###
df %>% ggplot(aes(x=x, y=y, color=z))
geom_point()
scale_color_viridis_c(alpha=0.5)
guides(color = guide_legend(override.aes = list(alpha = 1)))

uj5u.com熱心網友回復:
您可以簡單地將您的 alpha 添加到geom_point()而不是色標。下面是一個可重現的示例,突出顯示了您當前的方法與實作您所要求的正確方法之間的區別,即“如何在保持完全可見性和圖例中的實際比例的同時更改我的色標的 alpha?”
library(ggplot2)
library(vctrs)
###Generate Mock Data ###
df<- data_frame(y=seq(1:100), x=seq(1:100), z=seq(1:100))
###Plot with Alpha = 0 showing points and legend disappears###
ggplot(df,aes(x,y,color=z))
geom_point()
scale_color_viridis_c(alpha=0.00)

###Plot with Alpha = 0.1 showing points and legend disappears###
ggplot(df,aes(x,y,color=z))
geom_point()
scale_color_viridis_c(alpha=0.1)

###Plot with Alpha = 0 showing points disappear while legend remains visible###
ggplot(df,aes(x,y,color=z))
geom_point(alpha=0.00)
scale_color_viridis_c()

###Plot with Alpha = 0 showing points disappear while legend remains visible###
ggplot(df,aes(x,y,color=z))
geom_point(alpha=0.1)
scale_color_viridis_c()

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/317991.html
