繁体   English   中英

如何在 R 的 ggplot2 中添加自定义图例?

[英]How to add customized legend in ggplot2 in R?

我使用 ggplot2 生成了这个 plot。 将生成类似图表的工作示例是

set.seed(123)
prds=data.frame(Predicted=0.01*0:10, 
                outcome=abs(0.01*0:10-0.02+0.04*runif(11)))
ggplot(prds,aes(x = Predicted, y = as.numeric(outcome))) +
  theme_bw() +
  geom_abline(slope = 1, intercept = 0, color = "blue", lwd=1.3) +
  geom_smooth(color = "red", se = FALSE, lwd=1.3) +
  ylab("Observed") +
  coord_cartesian(xlim = c(0,0.1), ylim = c(0,0.1), expand = F) 

但是,我找不到如何添加图例,并且由于期限紧迫,我最终通过使用图像编辑工具手动添加它来结束? 有没有办法通过使用 ggplot2 添加它? 不错的情节

所以 geom_line 不会成功。 这是它的完成方式:

ggplot(prds, aes(x=Predicted)) +
  ggtitle("How to do it")+
  theme_bw() +
  geom_smooth(aes(y=outcome, color="Model"), se=FALSE, lwd=1.3) +
  geom_line(aes(y=Predicted, color="Optimum"), size=1.5) +
  labs(x="Predicted", y="Observed", color=" ") +
  scale_linetype_manual(name=" ",
                     values=c("Model"="red", "Optimum"="blue"),
                     labels=c("Model","Optimum")) +
  theme(strip.text.x = element_blank(),
        strip.background = element_rect(colour="white", fill="white"),
        legend.position=c(.85,.2))

我在问题中发布的代码有两个更改。 首先,我将 geom_abline 替换为 geom_line 并将其用于 plot 通过对自身进行预测来绘制参考线。 其次,我添加了主题定义,如此所述。 我承认我仍然不了解有关此主题定义的所有内容。 无论如何,关于这个特定问题的最重要的细节是如何设置图例。position,可能需要一些试验和错误。

通常,您在美学中指定的特征会出现在图例中。 在你的情况下应该是这样的

ggplot(data=your.data) + geom_line(aes(x=Predicted, y=Observed, color=model)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM