我正在尝试使用ggplot生成密度图,其中图的颜色和填充由一个参数确定,填充的alpha由第二个参数确定。
我可以让图形呈现我想要的方式,但在图例中没有描绘alpha的值。
由于我将alpha的值设置为0和0.3,我希望图例显示具有相应不透明度的框(即白色和灰色)。相反,有两个具有相同不透明度的框。
任何建议都将不胜感激。
我使用mtcars
重新创建了一个示例图ggplot(
mtcars,
aes(
x=wt,
fill=factor(cyl),
color=factor(cyl),
alpha=factor(am)
)
) +
geom_density() +
scale_alpha_discrete(
name="transmission",
labels=c("auto","manual"),
range = c(0,0.3)
) +
theme_bw()
答案 0 :(得分:1)
传输(因子(am))不具有与它们相关联的颜色并且仅具有α水平。因此,图例显示白色的0%和30%透明度,这是默认颜色。所以呈现alpha,但你只是没有看到它。您可以通过在图例中填充例如黑色的传输来解决此问题。
ggplot(
mtcars,
aes(
x=wt,
fill=factor(cyl),
color=factor(cyl),
alpha=factor(am)
)
)+
geom_density()+
scale_alpha_discrete(
name="transmission",
labels=c("auto","manual"),
range = c(0,0.3)
)+
theme_bw()+
guides(alpha = guide_legend(override.aes = list(fill = c('black','black'))))