在ggplot2中合并图例

德布雷特施耐德

我有多个的情节geom_point和一个stat_functionggplot2有没有办法显示一个图例?

df <- data.frame("x"=c(1:5), "a"=c(1,2,3,3,3), "b"=c(1,1.1,1.3,1.5,1.5))
df <- melt(df, "x")
p <- ggplot(df, aes(x=x, y=value)) +
  geom_point(aes(colour=variable, shape=variable)) +
  stat_function(aes(colour="log2(x)"), fun=log2)

在此处输入图片说明

我想要一个带有蓝线和两个彩色形状的图例。我试过了

scale_colour_discrete(name="legend", breaks=c("a", "b", "log2(x)")) +
scale_shape_discrete(name="legend", breaks=c("a", "b"))

但这不起作用。有没有办法自动或手动执行此操作?

提前致谢。

夏普

可能更简单的替代方法是使用override.aes以下方法:

ggplot(df, aes(x = x, y = value)) +
  geom_point(aes(colour = variable, shape = variable), size = 3) +
  stat_function(aes(colour = "log2(x)"), fun = log2, size = 1.5) +
  guides(shape = FALSE,
         colour = guide_legend(override.aes = list(shape = c(16, 17, NA),
                                                   linetype = c("blank", "blank", "solid"))))

结果是:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章