R語言數(shù)據(jù)分析與挖掘-高級繪圖工具_(dá)第1頁
R語言數(shù)據(jù)分析與挖掘-高級繪圖工具_(dá)第2頁
R語言數(shù)據(jù)分析與挖掘-高級繪圖工具_(dá)第3頁
R語言數(shù)據(jù)分析與挖掘-高級繪圖工具_(dá)第4頁
R語言數(shù)據(jù)分析與挖掘-高級繪圖工具_(dá)第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

ggplot2繪圖工具01102交互式繪圖工具01ggplot2繪圖工具201PAGE3ggplot2繪圖工具ggplot2是一套全面而連貫的語法繪圖系統(tǒng)。它彌補(bǔ)了R語言中創(chuàng)建圖形缺乏一致性的缺點(diǎn)。ggplot2具有以下特性:高質(zhì)量圖形的繪制,自動(dòng)化添加網(wǎng)格線和圖例。疊加來自不同數(shù)據(jù)源的多個(gè)圖層(點(diǎn)、線、地圖、箱線圖等)。利用R語言強(qiáng)大的建模功能添加平滑曲線,如loess、線性模型、廣義可加模型和穩(wěn)健回歸。保存任意ggplot2圖形,方便修改或重復(fù)使用。制作主題,滿足內(nèi)部定制或雜志風(fēng)格的需求,便捷地應(yīng)用到多副圖形上。從視覺角度上審視你的圖形,斟酌每一部分?jǐn)?shù)據(jù)如何呈現(xiàn)在最終圖形上。3PAGE4從qplot()函數(shù)開始qplot()函數(shù)的意思是快速作圖(quickplot),利用它可以很方便地創(chuàng)建各種復(fù)雜圖形。qplot()函數(shù)被設(shè)計(jì)得與plot()函數(shù)很像,因此如果有base包繪圖基礎(chǔ),那么用起它來也會(huì)很容易。qplot()函數(shù)的基本表達(dá)形式為:

qplot(x,y=NULL,...,data,facets=NULL,margins=FALSE,geom="auto",stat=list(NULL),position=list(NULL),xlim=c(NA,NA),ylim=c(NA,NA),log="",main=NULL,xlab=deparse(substitute(x)),ylab=deparse(substitute(y)),asp=NA)其中,參數(shù)facets是圖形/數(shù)據(jù)的分面,參數(shù)geom指圖形的幾何類型,參數(shù)stat指圖形的統(tǒng)計(jì)類型,參數(shù)position可圖形或者數(shù)據(jù)的位置調(diào)整,其他參數(shù)與plot()函數(shù)類似。4>if(!require(ggplot2))install.packages("ggplot2")>plot(mtcars$wt,mtcars$mpg)#方法一>qplot(mtcars$wt,mtcars$mpg)#方法二PAGE5從qplot()函數(shù)開始同樣也可以使用參數(shù)main增加主標(biāo)題,xlab、ylab修改X軸標(biāo)題和Y軸標(biāo)題,通過xlim,ylim參數(shù)修改X軸、Y軸的范圍。5>#修改標(biāo)題及坐標(biāo)軸>plot(mtcars$wt,mtcars$mpg,main="利用plot函數(shù)繪制散點(diǎn)圖",+xlab="Weight(1000lbs)",ylab="Miles/(US)gallon",+xlim=c(0,10),ylim=c(0,40))#方法一>qplot(mtcars$wt,mtcars$mpg,main="利用qplot函數(shù)繪制散點(diǎn)圖",+xlab="Weight(1000lbs)",ylab="Miles/(US)gallon",+xlim=c(0,10),ylim=c(0,40))#方法二PAGE6從qplot()函數(shù)開始甚至,qplot()函數(shù)也利用參數(shù)pch改變點(diǎn)形狀、cex改變點(diǎn)大小、col改變顏色。6>#修改顏色、形狀、大小>plot(mtcars$wt,mtcars$mpg,main="利用plot函數(shù)繪制散點(diǎn)圖",+xlab="Weight(1000lbs)",ylab="Miles/(US)gallon",+xlim=c(0,10),ylim=c(0,40),+pch=7,cex=2,col="green")#方法一>qplot(mtcars$wt,mtcars$mpg,main="利用qplot函數(shù)繪制散點(diǎn)圖",+xlab="Weight(1000lbs)",ylab="Miles/(US)gallon",+xlim=c(0,10),ylim=c(0,40),pch=I(7),+cex=I(2),col=I("green"))#方法二PAGE7從qplot()函數(shù)開始上面的例子都是通過利用qplot()函數(shù)繪制散點(diǎn)圖,可以通過參數(shù)geom指定不同的幾何對象,繪制各種圖形。7>#通過geom參數(shù)指定圖形的幾何類型>library(ggplot2)>q1<-qplot(wt,mpg,data=mtcars,geom="point",main="散點(diǎn)圖")>q2<-qplot(wt,mpg,data=mtcars,geom=c("point","smooth"),+main="增加擬合曲線的散點(diǎn)圖")>q3<-qplot(Species,Sepal.Length,data=iris,geom="boxplot",main="箱線圖")>q4<-qplot(Species,Sepal.Length,data=iris,geom="violin",main="小提琴圖")>q5<-qplot(clarity,data=diamonds,geom="bar",main="柱狀圖")>q6<-qplot(carat,data=diamonds,geom="histogram",main="直方圖")>if(!require(gridExtra))install.packages("gridExtra")>grid.arrange(q1,q2,q3,q4,q5,q6,ncol=3)PAGE8ggplot()函數(shù)繪圖ggplot()函數(shù)的功能是初始化一個(gè)ggplot對象,不指定做圖內(nèi)容。其使用格式為:

ggplot(data=NULL,…)其中,data指數(shù)據(jù)集。layer()函數(shù)的功能是創(chuàng)建一個(gè)新的圖層。其使用格式為:layer(geom,stat,data,mapping,position)其中,geom為圖形的幾何類型,stat為圖形的統(tǒng)計(jì)類型,data指數(shù)據(jù)集,mapping指映射,position可圖形或者數(shù)據(jù)的位置調(diào)整。8幾何對象函數(shù)描述

geom_abline直線:由斜率和截距指定geom_area面積圖geom_bar條形圖geom_bin2d二維封箱的熱圖geom_blank空的幾何對象,什么也不畫geom_boxplot箱線圖geom_contour等高線圖geom_crossbarCrossbar圖(類似于箱線圖,但沒有觸須和極值點(diǎn))geom_density密度圖geom_density2d二維密度圖geom_errorbar誤差線(通常添加到其他圖形上,比如柱狀圖、點(diǎn)圖、線圖等)geom_errorbarh水平誤差線geom_freqploy頻率多邊形(類似于直方圖)geom_hex六邊形圖(通常用于六邊形封箱)geom_histogram直方圖geom_hline水平線geom_jitter自動(dòng)添加了擾動(dòng)點(diǎn)geom_line線geom_linerange區(qū)間,用豎直線表示geom_path幾何路徑,由一組點(diǎn)按順序鏈接geom_point點(diǎn)geom_pointrange一條垂直線,線的中間有一個(gè)點(diǎn)(與Crossbar圖和箱線圖有關(guān))geom_polygon多邊形geom_quantile一組分位數(shù)線(來自分位數(shù)回歸)geom_rect二維的長方形geom_ribbon彩虹圖geom_rug觸須geom_segment線段geom_smooth平滑的條件均值geom_step階梯圖geom_text文本geom_tile瓦片(即一個(gè)個(gè)小長方形或多邊形)PAGE9ggplot()繪圖示例9>library(ggplot2)>ggplot(iris,aes(x=Species,y=Sepal.Length,fill=Species))++geom_boxplot()++labs(title="依據(jù)種類分組的花萼長度箱線圖")++theme(legend.position="none")>ggplot(iris,aes(x=Species,y=Sepal.Length,fill=Species))++geom_violin()++geom_jitter()++labs(title="依據(jù)種類分組的花萼長度箱線圖")++theme(legend.position="none")PAGE10ggplot2分面板10可以利用facet_wrap()或facet_grid()函數(shù)對圖形進(jìn)行分面。例如利用lattice中的數(shù)據(jù)集singer,對不同聲部的身高數(shù)據(jù)繪制密度圖??梢栽O(shè)置面板的行數(shù)或列數(shù)(通過facet_wrap()中的參數(shù)nrow和ncol設(shè)置),并可以利用主題參數(shù)theme設(shè)置圖例。>data(singer,package="lattice")>ggplot(data=singer,aes(x=height,fill=voice.part))++geom_density()++facet_wrap(~voice.part,ncol=4)++theme(legend.position="none")PAGE11修改顏色11可以使用scale_color_manual()或scale_color_brewer()函數(shù)修改圖形的顏色。#調(diào)整圖形填充顏色>#方式一:使用scale_color_manual函數(shù)>g1<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species,shape=Species))++scale_color_manual(values=c("orange","olivedrab","navy"))++geom_point(size=3)>#方式二:使用scale_color_brewer函數(shù)>g2<-ggplot(iris,aes(x=Sepal.Length,y=Sepal.Width,colour=Species,shape=Species))++scale_color_brewer(palette="Set1")++geom_point(size=3)>gridExtra::grid.arrange(g1,g2,ncol=2)PAGE12ggthemes擴(kuò)展包12ggthemes是ggplot2的主題擴(kuò)展包,提供ggplot2使用的新主題、尺度、幾何對象和一些新函數(shù)。ggthemes通過install.packages("ggthemes",dependencies=TRUE)命令進(jìn)行安裝。加載該包主要作用是ggthemes提供的themes可以讓我們快速繪制不同主題圖像。主題名描述

theme_base類似于ggplot默認(rèn)設(shè)置theme_calc類似LibreOfficeCalc圖表theme_economist類似經(jīng)濟(jì)類圖表theme_economist_white類似經(jīng)濟(jì)類圖表theme_excel類似經(jīng)典excel圖表theme_few簡潔型theme_fivethirtyeight類似于

的圖

theme_foundation這個(gè)主題的設(shè)計(jì)是為基礎(chǔ)建立新的主題,而不是直接使用。theme_foundation是一個(gè)完整的主題,只有最小的元素定義。它相比于theme_gray或theme_bw更容易通過擴(kuò)展創(chuàng)建新的主題。theme_gdocs類似默認(rèn)的GoogleDocsCharttheme_hcHighchartsJStheme_igary主題與白色面板和灰色背景。theme_map一個(gè)簡潔的地圖主題theme_panderpander的默認(rèn)主題theme_solarized可以看/solarized的介紹theme_solarized_2同上theme_solid主題刪除所有non-geom元素(線條、文本等),這個(gè)主題只有所需的幾何對象。theme_stata基于Statagraphschemes的主題theme_tufte基于數(shù)據(jù)墨水最大化和圖形設(shè)計(jì)的EdwardTufte定量信息的視覺顯示。沒有邊界,沒有軸線,沒有網(wǎng)格。這個(gè)主題與geom_rug或geom_rangeframe結(jié)合效果最好。theme_wsjWallStreetJournalthemePAGE13ggExtra擴(kuò)展包13ggExtra是一個(gè)在ggplot2圖形邊緣添加直方圖的擴(kuò)展包,可以通過install.packages(“ggExtra”)命令進(jìn)行安裝。ggMarginal()函數(shù)可以給ggplot2圖形邊界添加密度圖、直方圖、箱線圖或小提琴圖。運(yùn)行以下代碼給散點(diǎn)圖的X、Y軸添加直方圖。>library(ggExtra)>library(ggplot2)>set.seed(1234)>df<-data.frame(x=rnorm(1000,50,10),y=rnorm(1000,50,10))>p<-ggplot(df,aes(x,y))+geom_point()+theme_classic()>#addmarginalhistograms>ggMarginal(p,type="histogram")>ggMarginal(p,type="histogram",colour="pink",fill="green")交互式繪圖工具1402PAGE15recharts包15recharts基于Echarts2的一個(gè)穩(wěn)定發(fā)布版(v2.2.7)開發(fā),安裝命令如下:recharts是一個(gè)用于交互可視化的R擴(kuò)展包,它提供了一套面向JavaScript庫ECharts2的接口。此包的目的是讓R語言用戶即便不精通HTML或JavaScript,也能用很少的代碼做出Echarts交互圖。當(dāng)然,懂一點(diǎn)JavaScript的話會(huì)更如虎添翼。recharts基于htmlwidgets擴(kuò)展包開發(fā),這樣做的優(yōu)點(diǎn)是極大地節(jié)省了開發(fā)者管理JavaScript依賴包和處理不同類型的輸出文檔(如RMarkdown和Shiny)的時(shí)間。你只需要?jiǎng)?chuàng)建一幅圖,而如何輸出這幅圖(無論RMarkdown,Shiny,還是R控制臺/RStudio)則交由htmlwidgets來處理。if(!require(devtools))library(devtools)devtools::install_github('madlogos/recharts')PAGE16recharts包-散點(diǎn)圖16此包的主函數(shù)是echartr()和S3通用函數(shù)echart()。在設(shè)計(jì)宗旨上,希望它們能自動(dòng)處理不同類型數(shù)據(jù)。比如,當(dāng)把一個(gè)數(shù)據(jù)框傳入echart(),而x、y變量均為數(shù)值型,它們會(huì)自動(dòng)適配散點(diǎn)圖,并自動(dòng)生成對應(yīng)的坐標(biāo)軸。當(dāng)然,你也可以通過參數(shù)type選擇需要展示的圖形。echartr()函數(shù)的基本表達(dá)形式為:

echartr(data,x=NULL,y=NULL,series=NULL,weight=NULL,facet=NULL,t=NULL,lat=NULL,lng=NULL,type="auto",subtype=NULL,elementId=NULL,...)主題名描述

data數(shù)據(jù)源,必須是數(shù)據(jù)框x自變量。data的一列或多列??梢允菚r(shí)間、數(shù)值或文本型y因變量,data的一列或多列。始終為數(shù)值型series分組變量,data的某一列。進(jìn)行運(yùn)算被視為因子。作為數(shù)據(jù)系列映射到圖例weight權(quán)重變量,在氣泡圖、線圖、柱圖中與圖形大小關(guān)聯(lián)facet分面變量,data的某一列。facet的每個(gè)水平會(huì)生成一個(gè)獨(dú)立的分面type圖表類型,默認(rèn)為auto>library(recharts)>echartr(iris,Sepal.Length,Sepal.Width)PAGE17recharts包-條形圖17recharts擴(kuò)展包繪制條形圖包含三種類型:條圖:bar|hbar、柱圖:column|vbar、直方圖:histogram|hist。>revenue<-read.csv("../data/revenue.csv")>library(reshape2)>revenue<-melt(revenue,id="游戲名稱")>colnames(revenue)<-c("游戲名稱","時(shí)間段","收入")>#繪制條形圖,默認(rèn)hbar類型>b<-echartr(revenue,"游戲名稱","收入","時(shí)間段")%>%+setTitle("游戲收入",pos=12)%>%+setLegend(pos=6)>bPAGE18rbokeh包18Bokeh是一個(gè)創(chuàng)建交互式圖表和地圖的python庫,現(xiàn)在有了對應(yīng)的R包,作者是RyanHafen。它可以很容易地創(chuàng)建漂亮的網(wǎng)頁圖表,并且跟Shiny完全兼容。通常,利用bokeh來繪圖需要給圖形添加圖層,類似于ggplot2。對于創(chuàng)建一個(gè)簡單的圖表,主要包含以下兩個(gè)步驟:(1)figure()——初始化圖形。它有很多參數(shù),用來設(shè)置寬度、高度、標(biāo)題和坐標(biāo)軸參數(shù)。(2)ly_geom()——指定你要用到的幾何類型。這里有多種選擇:ly_points

溫馨提示

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

評論

0/150

提交評論