R:geom_smooth在散点图中添加多条回归直线

导读

R语言lm函数可对两组数据进行回归分析。geom_point函数可以将数据绘制成散点图,geom_smooth函数可以继续在图中添加回归直线。下面展示在一个图中绘制多条回归直线的方法。

一、模拟输入数据

set.seed(1995)  
# 随机种子
data=data.frame(matrix(abs(round(rnorm(40, mean=20, sd=5))), 10, 4)) 
# 随机正整数,5行,4列
colnames(data)=c("y", "x1", "x2", "x3") 
# 列名
data  # 查看数据,如下:
图片.png

二、数据编辑

scale函数标准化数据。

scale(data)
# 如下:
图片.png

转成数据框格式。

data.frame(scale(data))
# 如下:
图片.png

使用melt函数将数据框里的数据以“y”变量为ID进行分组。

library(reshape)
# 加载数据编辑包

data2=melt(data.frame(scale(data)), id="y")
data2
# 最终结果保存到data2,如下:
图片.png

三、ggplot画图

ggplot(aes()) # 指定所需数据
geom_point() # 画散点
geom_smooth() # 画拟合直线

library(ggplot2)
# 加载画图包

pic <- ggplot(data=data2, aes(x=value, y=y, group=variable, color=variable)) +
labs(x=" ", y="y") +
# xy轴标签
geom_point() +
# 添加散点
geom_smooth(method="lm") +
# 添加线性回归直线
theme(panel.grid=element_blank(), panel.background=element_rect(fill='transparent', color='black')) +
# 去点网格、去掉背景、添加边框
guides(color=guide_legend(title="x"))
# 修改legend标题

ggsave(pic, file="pic.png", height=7, width=10)
# 打开结果png文件,如下:
画好了吧,,令人开心

\color{green}{原创文章,码字不易,转载请注明出处}

你可能感兴趣的:(R:geom_smooth在散点图中添加多条回归直线)