Home Articles

使用标识比例时为alpha添加图例

Asked
Viewed 427 times
2

我正在 Build 一个有点复杂的情节,并希望手动指定每个点的alpha . 到目前为止,我可以用_1839380做到这一点 . 但现在我想为我的alpha量表添加一个图例 . 添加指南 scale_alpha_identity 似乎不起作用 - 我只是得到一个错误,即使我尝试添加断点和标签,如文档所示:http://ggplot2.tidyverse.org/reference/scale_identity.html .

最小的例子:这会产生我想要的情节,但没有传说 .

ggplot(data = iris) + 
  geom_point(aes(x = Sepal.Length, y = Sepal.Width, 
                 alpha = Petal.Length / max(Petal.Length))) + 
  scale_alpha_identity()

根据文档,我认为这可行,但它没有:

ggplot(data = iris) + 
  geom_point(aes(x = Sepal.Length, y = Sepal.Width, 
                 alpha = Petal.Length / max(Petal.Length))) + 
  scale_alpha_identity(breaks = c(0, 1), labels = c(0, 1), guide = 'legend')

我还尝试了许多其他变体:将 'colorbar''legend' 直接传递给带有和不带断点和标签的 guide 参数,传递 guide_legendguide_colorbar 而不是字符串 - 没有运气,只是不同的错误信息 . 按照Is there a way to add a legend for ggplot's alpha?中的建议添加假比例对我不起作用,因为它会覆盖我的身份比例 .

2 Answers

  • 3

    如果在 scale_alpha_identity 中设置 limits ,则可以通过 guides 添加图例 .

    ggplot(data = iris) + 
        geom_point(aes(x = Sepal.Length, y = Sepal.Width, 
                       alpha = Petal.Length / max(Petal.Length))) + 
        scale_alpha_identity(limits = c(.2, 1)) +
        guides(alpha = guide_legend() )
    
  • 0

    根据https://github.com/tidyverse/ggplot2/issues/2112,可能的解决方法是使用 size 身份功能...

    ggplot(data = iris) + 
      geom_point(aes(x = Sepal.Length, y = Sepal.Width, 
                     alpha = Petal.Length / max(Petal.Length))) + 
      scale_size_identity(guide = 'legend')
    

Related