ggplot密度图alpha未在图例

时间:2018-04-10 17:39:41

标签: r ggplot2

我正在尝试使用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()

enter image description here

1 个答案:

答案 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'))))

enter image description here