繁体   English   中英

R语言:如何使用ggplot2在一张具有回归线的图形上绘制多个矢量?

[英]R language: how to use ggplot2 to plot multiple vectors on one graph with regression lines?

例如,如果我有以下数据框(DF),如何在一个图中用ggplot2绘制VAR1与年份的关系图以及VAR2与年份的关系图? 并添加回归线?

year  VAR1  VAR2
2001    10    12
2002    30    12
2003    20    15

我可以使用qplot(year, VAR, data=DF, geom=c("point", "smooth"), method="lm", se=FALSE)来获得一张图,但是不确定如何添加另一张图。 我是否需要以某种方式重新排列数据以具有因素,然后使用facets属性?

要收集VAR1VAR2到同一列第一,它可以用做gather在功能tidyr包:

library(tidyr)
DF2 <- gather(DF, type, value, VAR1, VAR2)

这将使DF2变得整洁,在图形上您想要的每个点都排成一行(有关整洁数据和收集操作的更多信息,请参见本文 ):

  year type value
1 2001 VAR1    10
2 2002 VAR1    30
3 2003 VAR1    20
4 2001 VAR2    12
5 2002 VAR2    12
6 2003 VAR2    15

完成此操作后,可以使用以下两个变量创建图:

ggplot(DF2, aes(year, value, color = type)) +
    geom_point() +
    geom_smooth(method = "lm")

如果您希望将VAR分为两个子图(构面),则可以执行以下操作:

ggplot(DF2, aes(year, value)) +
    geom_point() +
    geom_smooth(method = "lm") +
    facet_wrap(~ type)

暂无
暂无

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

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