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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

DataMiningandDataAnalysiswithR數(shù)據(jù)挖掘與數(shù)據(jù)分析:基于R語言合作QQ:243001978第二章R語言可視化技術合作QQ:243001978ggplot2的圖層語法01圖層02圖像細節(jié)調(diào)整03常用工具圖的繪制04章節(jié)內(nèi)容2.1ggplot2的圖層語法R語言繪圖工具包,如基礎圖形系統(tǒng)graphics包、網(wǎng)格圖形系統(tǒng)grid包、lattice包等,采用整體封裝的設計思路,將不同的繪圖函數(shù)封裝成整體,使用時需要設置相關的參數(shù),適用于簡單圖形的繪制。ggplot2圖層語法,將圖形中的元素拆分成一系列相互獨立的部分,在繪圖時不需要設置圖形中的所有參數(shù),只需將圖形元素添加到圖中。用戶能夠靈活繪制復雜圖形,實現(xiàn)從易到繁、自由組合的過程。圖像的組成在圖層語法中,圖像由以下部分組成待可視化數(shù)據(jù)(data)以及變量到圖形屬性的映射(mapping)幾何對象(geom)、統(tǒng)計變換(stat)、位置標度(position)標度(scale),數(shù)據(jù)取值到圖形屬性的映射坐標系(coord),通常為笛卡爾坐標系分面(facet),對數(shù)據(jù)的不同子集作圖并聯(lián)合展示主題(theme),對圖像的細節(jié)進行調(diào)整圖2-1圖層語法的基本框架散點圖示例#加載包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加侖汽油在不同類型公路上的行駛距離的對比散點圖圖2-3汽車每使用1加侖汽油在不同類型公路上的行駛距離的對比散點圖2.2圖層合作QQ:243001978圖層主要由以下五個部分組成數(shù)據(jù)集映射幾何對象統(tǒng)計變換位置調(diào)整在ggplot2中,通過符號“+”添加圖層,圖層疊加構成最終的統(tǒng)計圖。本節(jié)主要介紹ggplot2中圖層的概念及應用。繪圖對象合作QQ:243001978ggplot()函數(shù)創(chuàng)建繪圖對象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>幾何對象幾何對象描述abline由斜率和截距決定的線hline水平線vline豎直線point散點圖Bar條形圖histogram直方圖line折線圖path路線圖boxplot箱線圖violin小提琴圖qqQQ圖smooth添加光滑的條件均值線text文本注釋ggplot2中常用的幾何對象調(diào)用函數(shù)geom_point()繪制散點圖#選擇數(shù)據(jù)集并建立映射p_test<-ggplot(data=mpg,mapping=aes(x=cty,y=hwy))#繪制散點圖p_test+geom_point(aes(colour=class,size=displ))圖2-4初始統(tǒng)計圖表2-1ggplot2中常用的幾何對象統(tǒng)計變換統(tǒng)計變換對數(shù)據(jù)進行某種運算處理,不同的計算方法對應不同的statxxx()函數(shù)調(diào)用stat_smooth()函數(shù)添加擬合曲線#選擇數(shù)據(jù)集并建立映射p_test<-

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

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

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

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

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

plot.background=element_rect(fill="pink",linetype=4)#設置整個圖形背景色和邊界線條類型)theme_set(my_theme)#更改默認主題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)用幾何對象geom_bar()函數(shù)進行繪制#單離散變量條形圖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ì)量分布圖,是表示資料變化情況的一種主要工具,應用于數(shù)值型單變量的可視化信息。調(diào)用幾何對象geom_histogram()函數(shù)進行繪制#直方圖ggplot(mpg,aes(x=hwy))+geom_histogram(colour="black",binwidth=2)+#設置顏色和組距

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

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

labs(x="日期",y="個人儲匯率",title="個人儲匯率變化趨勢")+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中沒有提供用于繪制餅圖的幾何對象函數(shù),餅圖一般是由條形圖的極坐標變換而來,在變換坐標系

溫馨提示

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

評論

0/150

提交評論