[英]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.