溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

R語言中g(shù)gplot2的使用方法是什么

發(fā)布時(shí)間:2022-03-25 15:45:20 來源:億速云 閱讀:354 作者:iii 欄目:大數(shù)據(jù)

今天小編給大家分享一下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è)資訊頻道。

向AI問一下細(xì)節(jié)

免責(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)容。

AI