导读
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 # 查看数据,如下:
二、数据编辑
scale函数标准化数据。
scale(data)
# 如下:
转成数据框格式。
data.frame(scale(data))
# 如下:
使用melt函数将数据框里的数据以“y”变量为ID进行分组。
library(reshape)
# 加载数据编辑包
data2=melt(data.frame(scale(data)), id="y")
data2
# 最终结果保存到data2,如下:
三、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文件,如下: