第20天 ggplot2数据可视化(3)关联性数据图形绘制
医学数据中常需要分析两个变量的关联性,常用的图形就是散点图。
两变量之间关联性数据(散点图)
如果想要表现不同性别身高与体重两个数据的关联性,同时拟合这两个变量的线性回归模型,我们就可以画这样一张图。
在进行绘图之前,我们先导入数据,并对数据进行前处理。
elder1<-read.csv("elder1.csv")
elder2<-read.csv("elder2.csv") #导入数据库
newdata<-merge(elder1,elder2, by="ID") #合并
newdata$sex<-as.factor(newdata$sex)
newdata<- na.omit(newdata) #剔除缺失数据
在R中做散点图相对比较简单,不需要对数据进行转化,直接对原数据就可以进行绘制。
一、 绘制两变量的散点图
ggplot(newdata, aes(x =, y =))+ geom_point()
aes():两个变量放入x,y中即可, colour,size,shape,alpha参数可以映射不同组的颜色(colour)、大小(size)、形状(shape)、透明度alpha等.如aes(x = height, y = weight,colour=size)表示用不同颜色来表示男女的点,这里的颜色是系统默认,如需自己添加,还要加上其它图层。
geom_point() 表示用点描述,参数同样可以设置点的属性,只是设置的是所有点的属性
ggplot(newdata, aes(x = height, y = weight))+ #将两个变量放入x,y中即可
geom_point()
ggplot(newdata, aes(x = height, y = weight,colour=sex))+ #按不同颜色区分性别
geom_point()
ggplot(newdata, aes(x = height, y = weight,colour=sex))+
geom_point(size=0.5)
二、点属性设置
1.颜色的改变:
scale_colour_manual(values = c(,))通过这个语句改变自己设置的颜色
ggplot(newdata, aes(x = height, y = weight,colour=sex))+
geom_point()+
scale_colour_manual(values = c(values ="red","blue") )#将性别的颜色改成红色和蓝色
2. 形状的改变
scale_shape_manual(values=c(,))通过这个语句改变形状。
c(,)填写数字,不同的数字代表不同的形状。
ggplot(newdata, aes(x = height, y = weight,shape=sex))+
geom_point()+
scale_shape_manual(values=c(1,2)) #将不同性别的形状改成空心圆和三角形。
3. 大小和透明度的改变
大小和透明度可以在geom_point()进行更改,这里是对所有的点进行修改,不分性别。
如果想要不同性别用不同的大小或透明度,还是需要用scale_语句。scale_size_manual(values=c(1,2))#将不同性别的大小设置成1,2,数值越大,点就越大,scale_alpha_manual(values=c(0.1,1)) #将不同性别的透明度设置成0.1,1,数值越小,越透明。
ggplot(newdata, aes(x = height, y = weight))+
geom_point(size=0.8, alpha=0.8)
ggplot(newdata, aes(x = height, y = weight,size=sex,alpha=sex))+
geom_point()+scale_size_manual(values=c(1,2))+
scale_alpha_manual(values=c(1,0.5))
三、分层绘图
如果想要把男女的点分开,在两个图里显示,可以用facet_grid(.~sex)语句。
facet_grid(.~sex) 表示两组图形按列分布
facet_grid(sex ~.)表示两组图形按行分布
facet_grid(sex ~sleep)表示图形按sex,sleep两变量的矩阵分布
ggplot(newdata, aes(x = height, y = weight))+
geom_point()+
facet_grid(.~sex) #图形按列分布
四、拟合回归模型
想要在散点中拟合回归模型,可能用geom_smooth()语句
geom_smooth()默认拟合最好的曲线
geom_smooth(method = lm,level=0.95) 拟合线性,并绘制95%可信区间。
ggplot(newdata, aes(x = height, y = weight)) +
geom_point()+
geom_smooth(method = lm)
把这几个语句连接起来,就绘制最前面的那个图形。
ggplot(newdata, aes(x = height, y = weight,
colour=sex,shape=sex))+
geom_point()+
scale_colour_manual(values = c("red","blue") )+
scale_shape_manual(values=c(1,2))+
facet_grid(.~sex)+
geom_smooth(method = lm,size=0.5)
散点图绘制的函数和参数还有很多,可以根据自己的需要去探索绘图的方法。
DAY20的内容就介绍到这里!
联系客服