您好,登錄后才能下訂單哦!
今天小編給大家分享一下R語言中g(shù)gplot2的使用方法是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
標(biāo)尺(Scale)
畫圖就是在做映射,不管是映射到不同的幾何對(duì)象上,還是映射各種圖形屬性。
#這一小節(jié)介紹標(biāo)尺,在對(duì)圖形屬性進(jìn)行映射之后,使用標(biāo)尺可以控制這些屬性的顯示方式,
#比如坐標(biāo)刻度,可能通過標(biāo)尺,將坐標(biāo)進(jìn)行對(duì)數(shù)變換;比如顏色屬性,也可以通過標(biāo)尺,進(jìn)行改變。
#以數(shù)據(jù)(Data)和映射(Mapping)一節(jié)中所畫散點(diǎn)圖為例,將Y軸坐標(biāo)進(jìn)行l(wèi)og10變換,再自己定義顏色為彩虹色。
ggplot(small)+geom_point(aes(x=carat, y=price, shape=cut, colour=color))+scale_y_log10()+scale_colour_manual(values=rainbow(7))
統(tǒng)計(jì)變換(Statistics)
統(tǒng)計(jì)變換對(duì)原始數(shù)據(jù)進(jìn)行某種計(jì)算,然后在圖上表示出來,例如對(duì)散點(diǎn)圖上加一條回歸線。
#這里就不按顏色、切工來分了,不然ggplot會(huì)按不同的分類變量分別做回歸,圖就很亂,
#如果我們需要這樣做,我們可以使用分面,這個(gè)將在后面介紹。
ggplot(small, aes(x=carat, y=price))+geom_point()+scale_y_log10()+stat_smooth()
#這里,aes所提供的參數(shù),就通過ggplot提供,而不是提供給geom_point,因?yàn)間gplot里的參數(shù),相當(dāng)于全局變量,
#geom_point()和stat_smooth()都知道x,y的映射,如果只提供給geom_point(),則相當(dāng)于是局部變量,
#geom_point知道這種映射,而stat_smooth不知道,當(dāng)然你再給stat_smooth也提供x,y的映射,
#不過共用的映射,還是提供給ggplot好。
ggplot2提供了多種統(tǒng)計(jì)變換方式:
stat_abline stat_contour stat_identity stat_summary
stat_bin stat_density stat_qq stat_summary2d
stat_bin2d stat_density2d stat_quantile stat_summary_hex
stat_bindot stat_ecdf stat_smooth stat_unique
stat_binhex stat_function stat_spoke stat_vline
stat_boxplot stat_hline stat_sum stat_ydensity
統(tǒng)計(jì)#變換是非常重要的功能,我們可以自己寫函數(shù),基于原始數(shù)據(jù)做某種計(jì)算,并在圖上表現(xiàn)出來,也可以通過它改變geom_xxx函數(shù)畫圖的默認(rèn)統(tǒng)計(jì)參數(shù)。
比如#把boxplot的中位線替換成了平均值來作圖。
坐標(biāo)系統(tǒng)(Coordinante)
坐標(biāo)系統(tǒng)控制坐標(biāo)軸,可以進(jìn)行變換,例如XY軸翻轉(zhuǎn),笛卡爾坐標(biāo)和極坐標(biāo)轉(zhuǎn)換,以滿足我們的各種需求。
#坐標(biāo)軸翻轉(zhuǎn)由coord_flip()實(shí)現(xiàn)
ggplot(small)+geom_bar(aes(x=cut, fill=cut))+coord_flip()
#轉(zhuǎn)換成極坐標(biāo)可以由coord_polar()實(shí)現(xiàn):
ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar(theta="y")
#這也是為什么之前介紹常用圖形畫法時(shí)沒有提及餅圖的原因,餅圖實(shí)際上就是柱狀圖,只不過是使用極坐標(biāo)而已,柱狀圖的高度,對(duì)應(yīng)于餅圖的弧度,餅圖并不推薦,因?yàn)槿祟惖难劬Ρ容^弧度的能力比不上比較高度(柱狀圖)
#靶心圖:
ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar()
#風(fēng)玫瑰圖(windrose)
ggplot(small)+geom_bar(aes(x=clarity, fill=cut))+coord_polar()
圖層(Layer)
photoshop流行的原因在于PS 3.0時(shí)引入圖層的概念,ggplot的牛B之處在于使用+號(hào)來疊加圖層,這堪稱是泛型編程的典范。
在前面散點(diǎn)圖上,我們已經(jīng)見識(shí)過,加上了一個(gè)回歸線擬合的圖層。
#有了圖層的概念,使用ggplot畫起圖來,就更加得心應(yīng)手。
#做為圖層的一個(gè)很好的例子是蝙蝠俠logo,batman logo由6個(gè)函數(shù)組成,在下面的例子中,我先畫第一個(gè)函數(shù),之后再加一個(gè)圖層畫第二個(gè)函數(shù),不斷重復(fù)這一過程,直到六個(gè)函數(shù)全部畫好。
require(ggplot2)
f1data.frame(x=x,y=y)
d -3*sqrt(33)/7,]
return(d)
}
x1data.frame(x2=x2, y2=y2)
p2data.frame(x3=x3, y3=y3)
p3data.frame(x4=x4,y4=y4)
p4data.frame(x5=x5,y5=y5)
p5data.frame(x6=x6,y6=y6)
p6
#下面再以生物界中常用的柱狀圖+誤差圖為實(shí)例,展示ggplot2非常靈活的圖層。
Normaldata.frame(V=c("Normal", "Cancer"), mean=m, sd=s)
d$V
以上就是“R語言中g(shù)gplot2的使用方法是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。