我建立了一个有点复杂的情节,并希望手动指定每个点的alpha。我可以用scale_alpha_identity
做到这一点,到目前为止一切顺利。但现在我想为我的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_legend
或guide_colorbar
而不是字符串 - 没有运气,只是不同的错误信息。根据{{3}}中的建议添加虚假比例并不适用于我,因为它会覆盖我的身份比例。
答案 0 :(得分:3)
如果您在limits
中设置了scale_alpha_identity
,则可以通过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() )
答案 1 :(得分: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')