上次學(xué)習(xí)本書的創(chuàng)建ggplot圖形,遇到了點(diǎn)困難怎么都過不去昧谊,于是擱置了幾天刽虹,今天又拿起來學(xué)。
一呢诬、繪制帶圖層的點(diǎn)圖涌哲。
>library(tidyverse)#調(diào)用tidyverse包,否則ggplot會使用不了這個命令
>ggplot(data = mtcars)+
? geom_point(mapping=aes(x = wt, y = mpg)) #這個里面出現(xiàn)了各種錯誤尚镰,#主要是書上提供的數(shù)據(jù)mpg的問題膛虫,總是報錯說這個數(shù)據(jù)不是數(shù)據(jù)框,于#是我換了mtcars數(shù)據(jù)才解決了問題钓猬,這個數(shù)據(jù)也是R自帶的數(shù)據(jù),以wt為#自變量撩独,以mpg為因變量敞曹。
解釋:
1账月、ggplot()函數(shù)開始繪圖。ggplot()創(chuàng)建了一個坐標(biāo)系澳迫,你可以在它上面添加圖層局齿。
2、ggplot()的第一個參數(shù)是要在圖中使用的數(shù)據(jù)集橄登。ggplot(data = mpg)會創(chuàng)建一張空白圖抓歼。
3、函數(shù)geom_point()向圖中添加一個點(diǎn)層拢锹,這樣就可以創(chuàng)建一張散點(diǎn)圖谣妻。
4、ggplot2 中的每個幾何對象函數(shù)都有一個 mapping 參數(shù)卒稳。這個參數(shù)定義了如何將數(shù)據(jù)集中的變量映射為圖形屬性蹋半。mapping 參數(shù)總是與 aes() 函數(shù)成對出現(xiàn),aes() 函數(shù)的 x 參數(shù)和 y 參數(shù)分別指定了映射到 x 軸的變量與映射到 y 軸的變量充坑。
5减江、?mtcars 使用這個命令查了下本數(shù)據(jù)集合的內(nèi)容
A data frame with 32 observations on 11 (numeric) variables.
[, 1]mpg ? Miles/(US) gallon
[, 2]cyl ? Number of cylinders
[, 3]dispDisplacement (cu.in.)
[, 4]hp ? Gross horsepower
[, 5]drat ? Rear axle ratio
[, 6]wt ? Weight (1000 lbs)
[, 7]qsec ? 1/4 mile time
[, 8]vs? Engine (0 = V-shaped, 1 = straight)
[, 9]am? Transmission (0 = automatic, 1 = manual)
[,10]gear ? Number of forward gears
[,11]carb ?? Number of carburetors
二捻爷、繪制不同顏色的散點(diǎn)圖辈灼,需要設(shè)置一個分類變量為顏色映射。命令如下:
>library(tidyverse)
>ggplot(data = mtcars)+
? geom_point(mapping=aes(x = wt, y = mpg,color = vs)) #增加了color的設(shè)#置也榄,其中vs是是什么形狀的巡莹,0 = V-shaped, 1 = straight
繪制出來的圖形為:
三、繪制不同尺寸的散點(diǎn)圖
>library(tidyverse)
>ggplot(data = mtcars)+
? geom_point(mapping=aes(x = wt, y = mpg,size = vs))
四手蝎、繪制不同顏色灰度的散點(diǎn)圖
命令語句為
>library(tidyverse)
>ggplot(data = mtcars)+
? geom_point(mapping=aes(x = wt, y = mpg,alpha = carb))
圖4不同灰度的散點(diǎn)圖
五 榕莺、不同形狀的散點(diǎn)圖
這次我用自己的數(shù)據(jù),一個txt 文件來實(shí)現(xiàn)了棵介。這個運(yùn)行前需要設(shè)置工作空間钉鸯。通過命令欄的session--->set working diectory 來設(shè)定?
>m<-read.table("ANOVA4.txt")
>m$V5<-as.factor(m$V5)# 如果不加這句,心里默認(rèn)V5為類別邮辽,則會出錯唠雕,#錯誤提示連續(xù)變量不可以設(shè)置形狀。
>ggplot(data = m)+
? geom_point(mapping=aes(x = V1, y = V2,shape = V5))
結(jié)果如下圖:
再用mtcars試一下吨述,這回就不會報錯了岩睁。
>library(tidyverse)
>mtcars$vs<-as.factor(mtcars$vs)#這個是將
>ggplot(data = mtcars)+
? geom_point(mapping=aes(x = wt, y = mpg,shape = vs))
圖6 不同形狀散點(diǎn)圖
六、設(shè)定顏色特定的散點(diǎn)圖
>ggplot(data = mtcars)+
? geom_point(mapping=aes(x = wt, y = mpg),color = "blue")
繪制出來的結(jié)果為:
類似的設(shè)置還可以有如下變化:
>ggplot(data = mtcars)+
? geom_point(mapping=aes(x = wt, y = mpg),size = 4)#設(shè)置特定尺寸
>ggplot(data = mtcars)+
? geom_point(mapping=aes(x = wt, y = mpg),shape = 4)#設(shè)置特定形狀為##星號
七揣云、繪制簡單平滑幾何曲線
>ggplot(data = mtcars)+
? geom_smooth(mapping=aes(x = wt, y = mpg))#使用了平滑幾何對象繪制
八捕儒、繪制分組的平滑幾何曲線
>ggplot(data = mtcars)+
? geom_smooth(mapping=aes(x = wt, y = mpg,linetype = vs))#使用vs來分#組繪制圖形
類似的命令可以有
>ggplot(data = mtcars)+
? geom_smooth(mapping=aes(x = wt, y = mpg,group = vs))
圖形效果如下
>ggplot(data = mtcars)+
? geom_smooth(
? ? mapping=aes(x = wt, y = mpg,color = vs),? #這里的逗號不要丟了
? ? show.legend = FALSE #這個是說不出現(xiàn)圖例,如果要出現(xiàn)則輸入TRUE
? ? )
圖11 分組繪制平滑曲線
九、同時出現(xiàn)多個幾何對象
>ggplot(data = mtcars)+ ? ? #加號別忘了
? geom_smooth(mapping=aes(x = wt, y = mpg))+ ? #加號別忘了
? geom_point(mapping=aes(x = wt, y = mpg))
該命令可以簡化為:
>ggplot(data = mtcars,mapping=aes(x = wt, y = mpg))+
? geom_smooth()+
? geom_point()
繪制結(jié)果是:
可以擴(kuò)展為:
>ggplot(data = mtcars,mapping=aes(x = wt, y = mpg))+
? geom_smooth(mapping = aes(color =vs))+
? geom_point()
圖形為:
也可以擴(kuò)展為:
>ggplot(data = mtcars,mapping=aes(x = wt, y = mpg))+
? geom_smooth()+
? geom_point(mapping = aes(color =vs))
繪制圖形為:
總結(jié):幾何對象比如點(diǎn)圖刘莹,平滑圖阎毅,但是先寫誰,并沒有關(guān)系点弯∩鹊鳎看來所謂的平滑曲線就是散點(diǎn)圖分布的范圍的勾勒。
學(xué)習(xí)感受:剛拿到這本書迫不及待的開始學(xué)習(xí)抢肛,反倒在一開始就是因?yàn)閿?shù)據(jù)的問題卡死在了開始的第一個圖形狼钮,后來擱置了一周后,去忙別的編程捡絮,再來看這個例子熬芜,就反應(yīng)過來了是哪里的問題。所以學(xué)習(xí)真是不能急啊锦援。