第20天 ggplot2數(shù)據(jù)可視化(3)關(guān)聯(lián)性數(shù)據(jù)圖形繪制 醫(yī)學(xué)數(shù)據(jù)中常需要分析兩個(gè)變量的關(guān)聯(lián)性,常用的圖形就是散點(diǎn)圖。 兩變量之間關(guān)聯(lián)性數(shù)據(jù)(散點(diǎn)圖) 如果想要表現(xiàn)不同性別身高與體重兩個(gè)數(shù)據(jù)的關(guān)聯(lián)性,,同時(shí)擬合這兩個(gè)變量的線性回歸模型,,我們就可以畫這樣一張圖。 在進(jìn)行繪圖之前,,我們先導(dǎo)入數(shù)據(jù),,并對(duì)數(shù)據(jù)進(jìn)行前處理。 elder1<-read.csv("elder1.csv") elder2<-read.csv("elder2.csv") #導(dǎo)入數(shù)據(jù)庫(kù) newdata<-merge(elder1,elder2, by="ID") #合并 newdata$sex<-as.factor(newdata$sex) newdata<- na.omit(newdata) #剔除缺失數(shù)據(jù) 在R中做散點(diǎn)圖相對(duì)比較簡(jiǎn)單,,不需要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)化,,直接對(duì)原數(shù)據(jù)就可以進(jìn)行繪制。 一,、 繪制兩變量的散點(diǎn)圖 ggplot(newdata, aes(x =, y =))+ geom_point() aes():兩個(gè)變量放入x,y中即可,, colour,size,shape,alpha參數(shù)可以映射不同組的顏色(colour)、大小(size),、形狀(shape),、透明度alpha等.如aes(x = height, y = weight,colour=size)表示用不同顏色來表示男女的點(diǎn),這里的顏色是系統(tǒng)默認(rèn),,如需自己添加,,還要加上其它圖層。 geom_point() 表示用點(diǎn)描述,,參數(shù)同樣可以設(shè)置點(diǎn)的屬性,,只是設(shè)置的是所有點(diǎn)的屬性 ggplot(newdata, aes(x = height, y = weight))+ #將兩個(gè)變量放入x,y中即可 geom_point() ggplot(newdata, aes(x = height, y = weight,colour=sex))+ #按不同顏色區(qū)分性別 geom_point() ggplot(newdata, aes(x = height, y = weight,colour=sex))+ geom_point(size=0.5) 二、點(diǎn)屬性設(shè)置 1.顏色的改變: scale_colour_manual(values = c(,,))通過這個(gè)語句改變自己設(shè)置的顏色 ggplot(newdata, aes(x = height, y = weight,colour=sex))+ geom_point()+ scale_colour_manual(values = c(values ="red","blue") )#將性別的顏色改成紅色和藍(lán)色 2. 形狀的改變 scale_shape_manual(values=c(,))通過這個(gè)語句改變形狀,。 c(,)填寫數(shù)字,不同的數(shù)字代表不同的形狀,。 ggplot(newdata, aes(x = height, y = weight,,shape=sex))+ geom_point()+ scale_shape_manual(values=c(1,2)) #將不同性別的形狀改成空心圓和三角形。 3. 大小和透明度的改變 大小和透明度可以在geom_point()進(jìn)行更改,這里是對(duì)所有的點(diǎn)進(jìn)行修改,,不分性別,。 如果想要不同性別用不同的大小或透明度,還是需要用scale_語句,。scale_size_manual(values=c(1,2))#將不同性別的大小設(shè)置成1,,2,數(shù)值越大,,點(diǎn)就越大,,scale_alpha_manual(values=c(0.1,1)) #將不同性別的透明度設(shè)置成0.1,1,,數(shù)值越小,,越透明。 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)) 三、分層繪圖 如果想要把男女的點(diǎn)分開,,在兩個(gè)圖里顯示,,可以用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) #圖形按列分布 四,、擬合回歸模型 想要在散點(diǎn)中擬合回歸模型,可能用geom_smooth()語句 geom_smooth()默認(rèn)擬合最好的曲線 geom_smooth(method = lm,level=0.95) 擬合線性,,并繪制95%可信區(qū)間。 ggplot(newdata, aes(x = height, y = weight)) + geom_point()+ geom_smooth(method = lm) 把這幾個(gè)語句連接起來,,就繪制最前面的那個(gè)圖形,。 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) 散點(diǎn)圖繪制的函數(shù)和參數(shù)還有很多,可以根據(jù)自己的需要去探索繪圖的方法,。 DAY20的內(nèi)容就介紹到這里,! |
|