數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語(yǔ)言- 課件 第二章 R語(yǔ)言可視化技術(shù)_第1頁(yè)
數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語(yǔ)言- 課件 第二章 R語(yǔ)言可視化技術(shù)_第2頁(yè)
數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語(yǔ)言- 課件 第二章 R語(yǔ)言可視化技術(shù)_第3頁(yè)
數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語(yǔ)言- 課件 第二章 R語(yǔ)言可視化技術(shù)_第4頁(yè)
數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語(yǔ)言- 課件 第二章 R語(yǔ)言可視化技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

DataMiningandDataAnalysiswithR數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語(yǔ)言合作QQ:243001978第二章R語(yǔ)言可視化技術(shù)合作QQ:243001978ggplot2的圖層語(yǔ)法01圖層02圖像細(xì)節(jié)調(diào)整03常用工具圖的繪制04章節(jié)內(nèi)容2.1ggplot2的圖層語(yǔ)法R語(yǔ)言繪圖工具包,如基礎(chǔ)圖形系統(tǒng)graphics包、網(wǎng)格圖形系統(tǒng)grid包、lattice包等,采用整體封裝的設(shè)計(jì)思路,將不同的繪圖函數(shù)封裝成整體,使用時(shí)需要設(shè)置相關(guān)的參數(shù),適用于簡(jiǎn)單圖形的繪制。ggplot2圖層語(yǔ)法,將圖形中的元素拆分成一系列相互獨(dú)立的部分,在繪圖時(shí)不需要設(shè)置圖形中的所有參數(shù),只需將圖形元素添加到圖中。用戶能夠靈活繪制復(fù)雜圖形,實(shí)現(xiàn)從易到繁、自由組合的過程。圖像的組成在圖層語(yǔ)法中,圖像由以下部分組成待可視化數(shù)據(jù)(data)以及變量到圖形屬性的映射(mapping)幾何對(duì)象(geom)、統(tǒng)計(jì)變換(stat)、位置標(biāo)度(position)標(biāo)度(scale),數(shù)據(jù)取值到圖形屬性的映射坐標(biāo)系(coord),通常為笛卡爾坐標(biāo)系分面(facet),對(duì)數(shù)據(jù)的不同子集作圖并聯(lián)合展示主題(theme),對(duì)圖像的細(xì)節(jié)進(jìn)行調(diào)整圖2-1圖層語(yǔ)法的基本框架散點(diǎn)圖示例#加載包ggplot2library(ggplot2)#選擇數(shù)據(jù)集并建立映射p_test<-ggplot(data=mpg,mapping=aes(x=cty,y=hwy))

p_test+geom_point(aes(colour=class,size=displ))+stat_smooth()+scale_size_continuous(range=c(3,8))+facet_wrap(~year,ncol=1)+labs(title="公路類型-行駛距離")+theme(plot.title=element_text(size=15,hjust=0.5))繪制汽車每使用1加侖汽油在不同類型公路上的行駛距離的對(duì)比散點(diǎn)圖圖2-3汽車每使用1加侖汽油在不同類型公路上的行駛距離的對(duì)比散點(diǎn)圖2.2圖層合作QQ:243001978圖層主要由以下五個(gè)部分組成數(shù)據(jù)集映射幾何對(duì)象統(tǒng)計(jì)變換位置調(diào)整在ggplot2中,通過符號(hào)“+”添加圖層,圖層疊加構(gòu)成最終的統(tǒng)計(jì)圖。本節(jié)主要介紹ggplot2中圖層的概念及應(yīng)用。繪圖對(duì)象合作QQ:243001978ggplot()函數(shù)創(chuàng)建繪圖對(duì)象ggplot(data=NULL,mapping=aes(),…)aes()函數(shù)將數(shù)據(jù)變量映射為圖形屬性p_test<-ggplot(data=mpg,mapping=aes(x=cty,y=hwy))p_test<-ggplot(mpg)p_test<-p_test+aes(cty,hwy)summary()函數(shù)查看圖層信息Summary(p_test)輸出:data:manufacturer,model,displ,year,cyl,trans,drv,cty,hwy,fl,class[234x11]mapping:x=~cty,y=~hwyfaceting:<ggprotoobject:ClassFacetNull,Facet,gg>compute_layout:functiondraw_back:functiondraw_front:functiondraw_labels:functiondraw_panels:functionfinish_data:functioninit_scales:functionmap_data:functionparams:listsetup_data:functionsetup_params:functionshrink:TRUEtrain_scales:functionvars:functionsuper:<ggprotoobject:ClassFacetNull,Facet,gg>幾何對(duì)象幾何對(duì)象描述abline由斜率和截距決定的線hline水平線vline豎直線point散點(diǎn)圖Bar條形圖histogram直方圖line折線圖path路線圖boxplot箱線圖violin小提琴圖qqQQ圖smooth添加光滑的條件均值線text文本注釋ggplot2中常用的幾何對(duì)象調(diào)用函數(shù)geom_point()繪制散點(diǎn)圖#選擇數(shù)據(jù)集并建立映射p_test<-ggplot(data=mpg,mapping=aes(x=cty,y=hwy))#繪制散點(diǎn)圖p_test+geom_point(aes(colour=class,size=displ))圖2-4初始統(tǒng)計(jì)圖表2-1ggplot2中常用的幾何對(duì)象統(tǒng)計(jì)變換統(tǒng)計(jì)變換對(duì)數(shù)據(jù)進(jìn)行某種運(yùn)算處理,不同的計(jì)算方法對(duì)應(yīng)不同的statxxx()函數(shù)調(diào)用stat_smooth()函數(shù)添加擬合曲線#選擇數(shù)據(jù)集并建立映射p_test<-

ggplot(data=mpg,mapping=aes(x=cty,y=hwy))#繪制散點(diǎn)圖p_test+geom_point(aes(colour=class,size=displ))+stat_smooth()圖2-5添加擬合曲線后的散點(diǎn)圖統(tǒng)計(jì)變換在圖形繪制中,幾何對(duì)象與統(tǒng)計(jì)變換都被視作圖層,geom_xxx()函數(shù)與stat_xxx()函數(shù)往往成對(duì)出現(xiàn)。每個(gè)幾何對(duì)象的geom_xxx()函數(shù)中都包含一個(gè)stat參數(shù),每個(gè)統(tǒng)計(jì)變換的stat_xxx()函數(shù)中都包含一個(gè)geom參數(shù)。mapping代表圖形屬性的映射,data為數(shù)據(jù)集,position代表位置調(diào)整,這些參數(shù)不是非必選參數(shù)。geom_xxx(mapping,data,…,stat,position)stat_xxx(mapping,data,…,geom,position)統(tǒng)計(jì)變換#以geom_xxx()開頭的圖層ggplot(mpg,aes(cty,hwy))+

geom_point(aes(colour=class),size=4,stat="summary")#以stat_xxx()開頭的圖層ggplot(mpg,aes(cty,hwy))+stat_summary(aes(colour=class),size=4,geom="point")#同時(shí)添加geom_xxx()圖層和stat_xxx()圖層ggplot(mpg,aes(cty,hwy))+geom_point(aes(colour=class),size=4)+stat_summary()圖2-6均值散點(diǎn)圖圖2-7添加均值后的散點(diǎn)圖統(tǒng)計(jì)變換統(tǒng)計(jì)變換描述identity不對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)變換quantile計(jì)算連續(xù)的分位數(shù)smooth添加光滑曲線sum計(jì)算每個(gè)單一值的頻數(shù)summary對(duì)每個(gè)x所對(duì)應(yīng)的y值做統(tǒng)計(jì)描述unique刪除重復(fù)值大部分情況下會(huì)省略幾何對(duì)象與統(tǒng)計(jì)變換中的參數(shù)data,因?yàn)樵诶L圖對(duì)象ggplot()函數(shù)中已經(jīng)設(shè)置了待可視化的數(shù)據(jù)集,該數(shù)據(jù)集之后將作為參數(shù)data的默認(rèn)參數(shù)。若在geom_xxx()函數(shù)或stat_xxx()函數(shù)中設(shè)置了參數(shù)data,則默認(rèn)數(shù)據(jù)集將被改變。ggplot2中常用的統(tǒng)計(jì)變換如下表2-2ggplot2中常用的統(tǒng)計(jì)變換位置調(diào)整位置調(diào)整參數(shù)描述dodge并排放置(避免重疊)fill堆疊圖形元素并將高度標(biāo)準(zhǔn)化為1identity不做任何調(diào)整jitter給點(diǎn)添加擾動(dòng)(避免重合)stack堆疊圖形元素ggplot2中主要的位置調(diào)整參數(shù)通過設(shè)置幾何對(duì)象geom_xxx()函數(shù)或統(tǒng)計(jì)變換stat_xxx()函數(shù)中的position參數(shù)進(jìn)行調(diào)整#添加位置調(diào)整p_test+geom_point(aes(colour=class,size=displ),position="jitter")位置調(diào)整多用于離散型數(shù)據(jù)的繪圖圖2-8添加擾動(dòng)后的散點(diǎn)圖表2-3ggplot2中的位置調(diào)整參數(shù)位置調(diào)整#繪制條形圖p_test1<-ggplot(mpg,aes(x=trans,fill=factor(cyl)))#設(shè)置位置調(diào)整參數(shù)為堆疊p_test1+geom_bar(position="stack")#將高度標(biāo)準(zhǔn)化為1p_test1+geom_bar(position="fill")#設(shè)置位置調(diào)整參數(shù)為并列p_test1+geom_bar(position="dodge")圖2-9條形圖(position="stack")圖2-10條形圖(position="fill")圖2-11條形圖(position="dodge")繪制設(shè)置了不同位置調(diào)整參數(shù)的條形圖2.3圖像細(xì)節(jié)調(diào)整為了讓繪制的圖像更加美觀,同時(shí)也能更加充分地表現(xiàn)數(shù)據(jù)集的特征,常常需要對(duì)圖像的細(xì)節(jié)進(jìn)行調(diào)整。ggplot2中用于調(diào)整圖像細(xì)節(jié)的主要工具標(biāo)度(scale)坐標(biāo)系(coord)分面(facet)主題(theme)標(biāo)度標(biāo)度將數(shù)據(jù)轉(zhuǎn)化為可視的圖形屬性,如顏色、位置、大小或形狀。依據(jù)變量類型的不同,標(biāo)度分為連續(xù)型標(biāo)度和離散型標(biāo)度。從圖形屬性角度出發(fā),標(biāo)度主要分為位置標(biāo)度、顏色標(biāo)度和手動(dòng)標(biāo)度。標(biāo)度構(gòu)造器scale_xxx_xxx()用于構(gòu)造新的標(biāo)度,其命名以scale_開頭,第二部分為圖形屬性名稱(size_、colour_等),第三部分為標(biāo)度名稱(continuous、hue等)#設(shè)置圖中散點(diǎn)的大小范圍scale_size_continuous(range=c(3,8))+labs(title="公路類型-行駛距離")#設(shè)置坐標(biāo)軸和圖例上的標(biāo)簽p_test+geom_point(aes(colour=class,size=displ))+stat_smooth()+scale_size_continuous(range=c(3,8))+labs(title="公路類型-行駛距離",x="每加侖城市公路英里數(shù)",y="每加侖高速公路英里數(shù)")

圖2-12修改坐標(biāo)軸和圖例標(biāo)簽的統(tǒng)計(jì)圖標(biāo)度通過xlab()、ylab()函數(shù)修改坐標(biāo)軸標(biāo)簽#設(shè)置圖中散點(diǎn)的大小范圍scale_size_continuous(range=c(3,8))+labs(title="公路類型-行駛距離")

#設(shè)置坐標(biāo)軸的標(biāo)簽p_test+geom_point(aes(colour=class,size=displ))+stat_smooth()+scale_size_continuous(range=c(3,8))+labs(title="公路類型-行駛距離")+xlab("每加侖城市公路英里數(shù)")+ylab(="每加侖高速公路英里數(shù)")圖2-12修改坐標(biāo)軸和圖例標(biāo)簽的統(tǒng)計(jì)圖標(biāo)度位置標(biāo)度每張統(tǒng)計(jì)圖擁有一個(gè)x標(biāo)度和一個(gè)y標(biāo)度,通過ggplot2中的xlim()和ylim()函數(shù)修改可設(shè)置的位置標(biāo)度類型包括離散型、連續(xù)型和日期型#離散型標(biāo)度xlim("差","中","好")#連續(xù)型標(biāo)度xlim(5,10)#日期型標(biāo)度xlim(as.Date(c("2022-05-20","2022-06-18")))#調(diào)整位置標(biāo)度(離散型)ggplot(mpg,aes(x=trans,fill=factor(cyl)))+geom_bar()+xlim("auto(av)","auto(s4)","auto(s6)")離散型位置標(biāo)度設(shè)置示例未添加xlim()已添加xlim()圖2-13離散型位置標(biāo)度標(biāo)度#調(diào)整位置標(biāo)度(連續(xù)型)ggplot(mpg,aes(cty,hwy))+geom_point(aes(colour=class,size=displ))+xlim(10,20)+ylim(10,20)連續(xù)型位置標(biāo)度設(shè)置示例未添加xlim()已添加xlim()圖2-14連續(xù)型位置標(biāo)度標(biāo)度#調(diào)整位置標(biāo)度(日期型)ggplot(data=economics,aes(x=date,y=psavert))+geom_line()+xlim(as.Date(c("1995-05-20","2005-05-20")))日期型位置標(biāo)度設(shè)置示例未添加xlim()已添加xlim()圖2-15日期型位置標(biāo)度標(biāo)度顏色標(biāo)度根據(jù)數(shù)據(jù)類型的不同,分為連續(xù)型顏色標(biāo)度和離散型顏色標(biāo)度#雙色梯度scale_colour_gradient()scale_fill_gradient()#三色梯度scale_colour_gradient2()scale_fill_gradient2()#n色梯度scale_colour_gradientn()scale_fill_gradientn()連續(xù)型顏色標(biāo)度的三種類型雙色梯度:通過參數(shù)low和high控制梯度兩端的顏色三色梯度:在雙色梯度的基礎(chǔ)上額外添加了參數(shù)midn色梯度:允許用戶自定義色彩數(shù)量標(biāo)度#調(diào)整顏色標(biāo)度(連續(xù)型)mydataframe_continuous_color<-data.frame(x=1:50,y=rnorm(50))p_continuous_color<-ggplot(mydataframe_continuous_color,aes(x,y,colour=y))+geom_point(size=4)p_continuous_colorp_continuous_color+scale_color_gradient(low="red",high="blue")#雙色梯度p_continuous_color+scale_color_gradient2(low="red",high="blue",mid="white")#三色梯度p_continuous_color+scale_color_gradientn(colours=c("red","blue","white","green"))#n色梯度圖2-16連續(xù)型顏色標(biāo)度示例未設(shè)置顏色標(biāo)度設(shè)置雙色梯度設(shè)置n色梯度設(shè)置三色梯度標(biāo)度#HCL配色模型scale_colour_hue()scale_fill_hue()#ColorBrewer調(diào)色板scale_colour_brewer()scale_fill_brewer()離散型顏色標(biāo)度的兩種類型HCL配色模型:默認(rèn)配色方案,通過hcl色輪選取色彩,h表示色相,范圍為(0,360),c表示飽和度,l表示明度。ColorBrewer調(diào)色板:參數(shù)type用于選擇調(diào)色板類型:“seq”、“div”、“qual”,參數(shù)palette用于指定調(diào)色板名稱或序號(hào),常用的有“Set1”、“Set2”等。標(biāo)度#調(diào)整顏色標(biāo)度(離散型)mydataframe_discrete_color<-data.frame(x=c("數(shù)學(xué)","語(yǔ)文","英語(yǔ)","物理","化學(xué)"),y=c(140,120,145,105,94))p_discrete_color<-ggplot(mydataframe_discrete_color,aes(x,y,fill=factor(x)))+geom_bar(stat="identity")p_discrete_colorp_discrete_color+scale_fill_hue(h=c(100,200),c=50)#HCL配色模型p_discrete_color+scale_fill_brewer(type="seq",palette="Set1")#ColorBrewer調(diào)色板HCL配色模型ColorBrewer調(diào)色板圖2-17離散型顏色標(biāo)度示例標(biāo)度#定制形狀標(biāo)度scale_shape_manual()#定制線條類型標(biāo)度scale_linetype_manual()#定制顏色標(biāo)度scale_colour_manual()scale_fill_manual()手動(dòng)型顏色標(biāo)度ggplot2中允許用戶手動(dòng)定制標(biāo)度,這一功能通過scale_xxx_manual()函數(shù)實(shí)現(xiàn)。常用的手動(dòng)型標(biāo)度如下用戶通過設(shè)定參數(shù)values的值自定義圖形屬性。手動(dòng)型標(biāo)度一般用于離散型數(shù)據(jù)。#對(duì)繪圖對(duì)象p_discrete_color重新上色p_discrete_color+scale_fill_manual(values=c("red","blue","yellow","green","black"))圖2-18手動(dòng)型標(biāo)度示例(顏色)標(biāo)度#設(shè)置多個(gè)手動(dòng)型標(biāo)度ggplot(data=mpg,mapping=aes(x=cty,y=hwy,fill=class,shape=class))+geom_point(size=5)+scale_fill_manual(values=c("yellow","black","red","green","white","red","blue"))+scale_shape_manual(values=c(21,22,23,24,21,22,23))ggplot2中點(diǎn)的形狀shape為[0,25]區(qū)間內(nèi)的26個(gè)整數(shù),其中0-20號(hào)形狀的點(diǎn)具有輪廓顏色(color)屬性,只有21-26號(hào)形狀的點(diǎn)具有填充(fill)屬性。ggplot2中點(diǎn)的形狀圖2-20手動(dòng)型標(biāo)度示例(顏色+形狀)圖2-19ggplot2中點(diǎn)的形狀坐標(biāo)系坐標(biāo)系描述cartesian笛卡爾坐標(biāo)系equal笛卡爾坐標(biāo)系(同尺度)flip笛卡爾坐標(biāo)系(翻轉(zhuǎn))trans笛卡爾坐標(biāo)系(變換)map地圖射影polar極坐標(biāo)系坐標(biāo)系是一種定位系統(tǒng),將多種位置標(biāo)度結(jié)合在一起以確定圖形的具體位置ggplot2中的坐標(biāo)系表2-4ggplot2中的坐標(biāo)系坐標(biāo)系笛卡爾坐標(biāo)系笛卡爾坐標(biāo)系是ggplot2中最常用的坐標(biāo)系,通過x坐標(biāo)和y坐標(biāo)定位圖形。xlim和ylim設(shè)置坐標(biāo)軸的范圍,不會(huì)刪除設(shè)定范圍外的數(shù)據(jù),而位置標(biāo)度中的xlim和ylim則會(huì)將設(shè)定范圍外的數(shù)據(jù)直接刪除。#xlim和ylimggplot(mpg,aes(cty,hwy))+geom_point(aes(colour=class,size=displ))+stat_smooth()#原圖ggplot(mpg,aes(cty,hwy))+geom_point(aes(colour=class,size=displ))+stat_smooth()+coord_cartesian(xlim=c(20,30),ylim=c(30,40))#笛卡爾坐標(biāo)系中的xlim和ylimggplot(mpg,aes(cty,hwy))+geom_point(aes(colour=class,size=displ))+stat_smooth()+xlim(20,30)+ylim(30,40)#位置標(biāo)度中的xlim和ylim坐標(biāo)系原圖設(shè)置笛卡爾坐標(biāo)系中的xlim和ylim設(shè)置位置標(biāo)度中的xlim和ylim圖2-21坐標(biāo)系與位置標(biāo)度的范圍設(shè)置坐標(biāo)系翻轉(zhuǎn)坐標(biāo)系用于調(diào)換x軸與y軸#翻轉(zhuǎn)坐標(biāo)系ggplot(mpg,aes(displ,cty))+geom_point(aes(colour=class),size=3,shape=11)+stat_smooth()ggplot(mpg,aes(displ,cty))+geom_point(aes(colour=class),size=3,shape=11)+stat_smooth()+coord_flip()#翻轉(zhuǎn)原圖翻轉(zhuǎn)后圖2-22翻轉(zhuǎn)坐標(biāo)系坐標(biāo)系同尺度坐標(biāo)系確保x軸與y軸的標(biāo)度相同,更改參數(shù)ratio可以調(diào)整x軸和y軸的尺度比例,默認(rèn)值為1:1#同尺度坐標(biāo)系ggplot(mpg,aes(cty,hwy))+geom_point(aes(colour=class,size=displ))+stat_smooth()#原圖ggplot(mpg,aes(cty,hwy))+geom_point(aes(colour=class,size=displ))+stat_smooth()+coord_equal(ratio=0.5)#修改尺寸比例原圖坐標(biāo)同尺度后圖2-23同尺度坐標(biāo)系示例坐標(biāo)系極坐標(biāo)系使用半徑和角度來定位圖形的位置通過設(shè)置參數(shù)theta,可以選擇笛卡爾坐標(biāo)系中被映射成角度的坐標(biāo)軸,默認(rèn)為x軸#極坐標(biāo)系ggplot(mpg,aes(x=trans,fill=factor(cyl)))+geom_bar()ggplot(mpg,aes(x=trans,fill=factor(cyl)))+geom_bar()+coord_polar()#將x軸映射為極坐標(biāo)系的角度ggplot(mpg,aes(x=trans,fill=factor(cyl)))+geom_bar()+coord_polar(theta="y")#將y軸映射為極坐標(biāo)系的角度笛卡爾坐標(biāo)系下的條形圖將x軸映射為極坐標(biāo)系的角度將y軸映射為極坐標(biāo)系的角度圖2-24極坐標(biāo)系示例分面分面用于對(duì)數(shù)據(jù)的不同子集作圖并聯(lián)合展示,在一個(gè)頁(yè)面中擺放多張圖形,每個(gè)圖形都是對(duì)數(shù)據(jù)集中的子集進(jìn)行可視化的結(jié)果ggplot2中主要有網(wǎng)格型(facet_grid)和封裝型(facet_wrap)兩種分面類型網(wǎng)格型分面通過生成2維面板網(wǎng)絡(luò)實(shí)現(xiàn)圖形的分面,用戶可以設(shè)置變量決定分面繪圖的行和列“.~a”設(shè)置一行多列,“b~.”設(shè)置一列多行,“a~b”設(shè)置多行多列,其中a、b皆為變量名分面ggplot(mpg,aes(cty,hwy))+geom_point()+facet_grid(.~cyl)#一行多列g(shù)gplot(mpg,aes(cty,hwy))+geom_point()+facet_grid(cyl~.)#一列多行g(shù)gplot(mpg,aes(cty,hwy))+geom_point()+facet_grid(cyl~drv)#多列多行一行多列一列多行多行多列圖2-25網(wǎng)格型分面示例分面#展示所有邊際圖margins=TRUE#展示指定的邊際圖margins=c("drv")ggplot(mpg,aes(cty,hwy))+geom_point()+facet_grid(cyl~drv,margins=T)#展示所有邊際圖網(wǎng)格型分面生成的2維面板網(wǎng)絡(luò)允許用戶展示相應(yīng)的邊際圖,這一功能通過設(shè)置facet_grid()中的參數(shù)margins實(shí)現(xiàn)每一行的邊際圖每一列的邊際圖原圖示例圖2-26網(wǎng)格型分面的邊際圖分面封裝型分面先生成1維面板條塊,再將其封裝到2維中,最終實(shí)現(xiàn)圖形的分面效果先用“.~a”設(shè)置分面,再通過設(shè)置參數(shù)ncol和nrow的值確定分面圖的布局#封裝型分面ggplot(mpg,aes(cty,hwy))+geom_point()+facet_wrap(~cyl)ggplot(mpg,aes(cty,hwy))+geom_point()+facet_wrap(~cyl,ncol=3)#設(shè)置每行三個(gè)圖未設(shè)置ncol和nrow設(shè)置每行的圖形數(shù)為3圖2-27封裝型分面示例分面若分面變量為連續(xù)型變量,則需要將其轉(zhuǎn)化為離散型變量,方法如下#將數(shù)據(jù)x劃分為若干個(gè)間隔為1的部分cut_interval(x,length=1)#將數(shù)據(jù)x劃分為n個(gè)間隔相同的部分cut_interval(x,n=10)#將數(shù)據(jù)x劃分為n個(gè)數(shù)據(jù)點(diǎn)數(shù)相同的部分cut_number(x,n=10)示例:

首先創(chuàng)建數(shù)據(jù)集mpg的副本mpg_copy,隨后在mpg_copy中創(chuàng)建3個(gè)新的離散型變量displ_il、displ_in、displ_nn,這三個(gè)變量皆通過上述方式由連續(xù)型變量轉(zhuǎn)化而來分面mpg_copy<-mpgmpg_copy$displ_il<-cut_interval(mpg_copy$displ,length=1)mpg_copy$displ_in<-cut_interval(mpg_copy$displ,n=6)mpg_copy$displ_nn<-cut_number(mpg_copy$displ,n=6)p_facet_convar+facet_wrap(~displ_il,nrow=1)p_facet_convar+facet_wrap(~displ_in,nrow=1)p_facet_convar+facet_wrap(~displ_nn,nrow=1)圖2-28連續(xù)型變量分面分面參數(shù)scales允許用戶調(diào)整圖中各面板的位置標(biāo)度,用法如下#所有面板的x和y標(biāo)度相同(默認(rèn))scales="fixed"#所有面板的x和y標(biāo)度可以自由變化scales="free"#x標(biāo)度可變,y的尺度固定scales="free_x"#y標(biāo)度可變,x的尺度固定scales="free_y"各面板具有相同的標(biāo)度時(shí),方便對(duì)其進(jìn)行比較;各面板具有自由的標(biāo)度時(shí),可以從每個(gè)面板中發(fā)現(xiàn)更多的細(xì)節(jié)分面ggplot(mpg,aes(cty,hwy))+geom_point()+facet_wrap(~cyl)ggplot(mpg,aes(cty,hwy))+geom_point()+facet_wrap(~cyl,scales="free")#每個(gè)面板的標(biāo)度都可以變化x和y標(biāo)度相同x和y標(biāo)度可變圖2-29封裝型分面中的標(biāo)度控制分面網(wǎng)格型分面和封裝型分面中都包含參數(shù)scales,但網(wǎng)格型分面生成的是2維面板網(wǎng)絡(luò),每行共用一個(gè)y軸,每列共用一個(gè)x軸,因此在網(wǎng)格型分面中同列的面板x標(biāo)度必須相同,同行的面板y標(biāo)度必須相同。ggplot(mpg,aes(cty,hwy))+geom_point()+facet_grid(.~cyl,scales="free")#通過設(shè)置scales自由x標(biāo)度ggplot(mpg,aes(cty,hwy))+geom_point()+facet_grid(cyl~.,scales="free")#通過設(shè)置scales自由y標(biāo)度若將facet_grid中的參數(shù)scales設(shè)置為“free”,則同行面板只有x標(biāo)度是可變的,同列面板只有y標(biāo)度是可變的左邊只有x標(biāo)度可變,右邊只有y標(biāo)度可變圖2-30網(wǎng)格型分面中的標(biāo)度控制(scales)分面網(wǎng)格型分面中參數(shù)space用于控制圖形占比。space的默認(rèn)值為“fixed”,當(dāng)其取值為“free”時(shí),同列面板所占高度與其標(biāo)度范圍成正比,同行面板所占寬度與其標(biāo)度范圍成正比。ggplot(mpg,aes(cty,hwy))+geom_point()+facet_grid(.~cyl,scales="free",space="free")#設(shè)置space使列寬與標(biāo)度范圍成比例ggplot(mpg,aes(cty,hwy))+geom_point()+facet_grid(cyl~.,scales="free",space="free")#設(shè)置space使行高與標(biāo)度范圍成比例同行面板同列面板圖2-31網(wǎng)格型分面中的圖形占比主題利用ggplot2繪圖的過程中,圖像的呈現(xiàn)取決于數(shù)據(jù)和非數(shù)據(jù)兩個(gè)部分。圖層、標(biāo)度等概念都是由數(shù)據(jù)決定的,為圖像的主體部分,非數(shù)據(jù)部分的控制可以由ggplot2中的主題(theme)來實(shí)現(xiàn)。ggplot2中有兩種內(nèi)置的主題:theme_gray()和theme_bw(),其中theme_gray()為默認(rèn)主題,為灰色背景和白色網(wǎng)格線,而theme_bw()是白色背景和灰色網(wǎng)格線。p_bar_theme_eg<-ggplot(mpg,aes(x=trans,fill=factor(cyl)))+geom_bar()p_bar_theme_eg+theme_gray()p_bar_theme_eg+theme_bw()圖2-32兩種主題效果對(duì)比左側(cè)為theme_gray(),右側(cè)為theme_bw()主題ggplot2中的主題元素主題元素描述axis.line直線和坐標(biāo)軸axis.text.xx軸標(biāo)簽axis.text.yy軸標(biāo)簽axis.ticks軸須標(biāo)簽axis.title.x水平軸標(biāo)簽axis.title.y豎直軸標(biāo)簽legend.background圖例背景l(fā)egend.key圖例符號(hào)legend.text圖例標(biāo)簽legend.title圖例標(biāo)題主題元素描述panel.background面板背景panel.border面板邊界panel.grid.major主網(wǎng)格線panel.grid.minor次網(wǎng)格線plot.background整個(gè)圖形的背景plot.title圖形標(biāo)題strip.background分面標(biāo)簽背景strip.text.x水平條狀文本strip.text.y豎直條狀文本表2-5ggplot2中的主題元素主題ggplot2中元素函數(shù)的參數(shù)設(shè)置element_text()用于繪制圖像的標(biāo)簽和標(biāo)題,并控制字體屬性,如字體的大?。╯ize)、顏色(colour)、對(duì)齊方式(hjust)、角度(angle)等#element_text()p_bar_theme_eg+labs(title="Barchartoftransmission")+theme(plot.title=element_text(color="blue",size=15))#設(shè)置大小和顏色p_bar_theme_eg+labs(title="Barchartoftransmission")+theme(plot.title=element_text(hjust=0.5,color="brown"))#設(shè)置對(duì)其方式和顏色圖2-33element_text()示例左側(cè)設(shè)置了圖像標(biāo)題字體大小和顏色,右側(cè)設(shè)置了標(biāo)題對(duì)齊方式及顏色。主題ggplot2中元素函數(shù)的參數(shù)設(shè)置element_line()用于控制線條或線段的外觀,如線條或線段的大?。╯ize)、顏色(colour)、類型(linetype)等#element_line()#設(shè)置坐標(biāo)軸的顏色和類型p_bar_theme_eg+theme(axis.line=element_line(colour="brown",linetype="longdash"))#設(shè)置主網(wǎng)格線的大小和顏色p_bar_theme_eg+theme(panel.grid.major=element_line(size=1.5,colour="pink"))圖2-34element_line()示例主題ggplot2中元素函數(shù)的參數(shù)設(shè)置element_rect()用于控制矩形的外觀,如矩形的邊界屬性(size、colour、linetype)、矩形的填充顏色(fill)等#element_rect()#設(shè)置面板背景的矩形邊界大小和顏色p_bar_theme_eg+theme(panel.background=element_rect(size=2,colour="blue"))#設(shè)置整個(gè)圖形背景的矩形填充顏色和邊界線條類型p_bar_theme_eg+theme(plot.background=element_rect(fill="pink",linetype=4))圖2-35element_rect()示例主題ggplot2中元素函數(shù)的參數(shù)設(shè)置element_blank()用于刪除圖形中的元素,即將某個(gè)圖形元素設(shè)為空白#element_blank()p_bar_theme_eg+theme(panel.background=element_blank())#刪除面板背景p_bar_theme_eg+theme(axis.text.y=element_blank())#刪除y軸標(biāo)簽圖2-36element_blank()示例刪除面板背景刪除y軸標(biāo)簽主題使用ggplot2對(duì)圖形進(jìn)行全局性修改theme_update()用于自定義個(gè)性主題theme_set()用于更改當(dāng)前主題#自定義主題my_theme<-theme_update(axis.line=element_line(colour="brown",linetype="longdash"),#設(shè)置坐標(biāo)軸的顏色和類型

panel.grid.major=element_line(size=1.5,colour="pink"),#設(shè)置主網(wǎng)格線的大小和顏色

panel.background=element_rect(size=2,colour="blue"),#設(shè)置面板背景的矩形邊界大小和顏色

plot.background=element_rect(fill="pink",linetype=4)#設(shè)置整個(gè)圖形背景色和邊界線條類型)theme_set(my_theme)#更改默認(rèn)主題ggplot(mpg,aes(x=trans,fill=factor(cyl)))+geom_bar()ggplot(mpg,aes(x=cty,y=hwy,colour=class,size=displ))+geom_point()圖2-37自定義主題2.4常用工具圖的繪制使用ggplot2繪制條形圖條形圖用于展現(xiàn)離散型變量和數(shù)值變量的數(shù)據(jù)信息,通過柱子的高低反映變量的出現(xiàn)頻數(shù)。常用的類型分為單離散變量條形圖和雙離散變量條形圖調(diào)用幾何對(duì)象geom_bar()函數(shù)進(jìn)行繪制#單離散變量條形圖mydf_bar<-data.frame(Student=c("Peter","Tony","Thor","Tom"),Grade=c(85,100,70,60))ggplot(mydf_bar,aes(Student,Grade))+geom_bar(stat="identity")+geom_hline(yintercept=mean(mydf_bar$Grade))+#添加水平參考線

labs(title="Student'sGrade")+theme(plot.title=element_text(hjust=0.5,color="brown",size=15))#雙離散變量條形圖ggplot(mpg,aes(x=trans,fill=factor(cyl)))+geom_bar()+theme(panel.background=element_blank())單離散變量條形圖雙離散變量條形圖圖2-38條形圖示例條形圖與直方圖使用ggplot2繪制直方圖直方圖又稱質(zhì)量分布圖,是表示資料變化情況的一種主要工具,應(yīng)用于數(shù)值型單變量的可視化信息。調(diào)用幾何對(duì)象geom_histogram()函數(shù)進(jìn)行繪制#直方圖ggplot(mpg,aes(x=hwy))+geom_histogram(colour="black",binwidth=2)+#設(shè)置顏色和組距

labs(title="Histogramofhwy")+theme(plot.title=element_text(hjust=0.5))圖2-39直方圖示例折線圖與路線圖使用ggplot2繪制折線圖折線圖是最常用的統(tǒng)計(jì)圖之一,主要用于顯示隨時(shí)間變化的連續(xù)數(shù)據(jù),觀察數(shù)據(jù)的變化趨勢(shì)。調(diào)用幾何對(duì)象geom_line()函數(shù)#折線圖ggplot(economics,aes(date,psavert))+geom_line(colour="red",lwd=0.8,#設(shè)置線條顏色和寬度

arrow=arrow(angle=25,length=unit(0.3,"inches"),ends="last",type="closed"))+#設(shè)置箭頭

labs(x="日期",y="個(gè)人儲(chǔ)匯率",title="個(gè)人儲(chǔ)匯率變化趨勢(shì)")+theme(plot.title=element_text(hjust=0.5,size=15))圖2-40折線圖示例折線圖與路線圖使用ggplot2繪制路線圖路線圖與折線圖類似,不同之處在于折線圖從左往右連接線條,而路線圖依據(jù)元素在數(shù)據(jù)集中出現(xiàn)的先后順序連接線條#路線圖vs折線圖mydf_path<-data.frame(x=c(4,2,6),y=c(3,5,7))ggplot(mydf_path,aes(x,y))+geom_line()#折線圖ggplot(mydf_path,aes(x,y))+geom_path()#路線圖折線圖路線圖圖2-41折線圖vs路線圖餅圖餅圖的繪制ggplot2中沒有提供用于繪制餅圖的幾何對(duì)象函數(shù),餅圖一般是由條形圖的極坐標(biāo)變換而來,在變換坐標(biāo)系

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論