您好,登錄后才能下訂單哦!
今天小編給大家分享一下R語言中ggplot2的使用方法是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
標尺(Scale)
畫圖就是在做映射,不管是映射到不同的幾何對象上,還是映射各種圖形屬性。
#這一小節介紹標尺,在對圖形屬性進行映射之后,使用標尺可以控制這些屬性的顯示方式,
#比如坐標刻度,可能通過標尺,將坐標進行對數變換;比如顏色屬性,也可以通過標尺,進行改變。
#以數據(Data)和映射(Mapping)一節中所畫散點圖為例,將Y軸坐標進行log10變換,再自己定義顏色為彩虹色。
ggplot(small)+geom_point(aes(x=carat, y=price, shape=cut, colour=color))+scale_y_log10()+scale_colour_manual(values=rainbow(7))
統計變換(Statistics)
統計變換對原始數據進行某種計算,然后在圖上表示出來,例如對散點圖上加一條回歸線。
#這里就不按顏色、切工來分了,不然ggplot會按不同的分類變量分別做回歸,圖就很亂,
#如果我們需要這樣做,我們可以使用分面,這個將在后面介紹。
ggplot(small, aes(x=carat, y=price))+geom_point()+scale_y_log10()+stat_smooth()
#這里,aes所提供的參數,就通過ggplot提供,而不是提供給geom_point,因為ggplot里的參數,相當于全局變量,
#geom_point()和stat_smooth()都知道x,y的映射,如果只提供給geom_point(),則相當于是局部變量,
#geom_point知道這種映射,而stat_smooth不知道,當然你再給stat_smooth也提供x,y的映射,
#不過共用的映射,還是提供給ggplot好。
ggplot2提供了多種統計變換方式:
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
統計#變換是非常重要的功能,我們可以自己寫函數,基于原始數據做某種計算,并在圖上表現出來,也可以通過它改變geom_xxx函數畫圖的默認統計參數。
比如#把boxplot的中位線替換成了平均值來作圖。
坐標系統(Coordinante)
坐標系統控制坐標軸,可以進行變換,例如XY軸翻轉,笛卡爾坐標和極坐標轉換,以滿足我們的各種需求。
#坐標軸翻轉由coord_flip()實現
ggplot(small)+geom_bar(aes(x=cut, fill=cut))+coord_flip()
#轉換成極坐標可以由coord_polar()實現:
ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar(theta="y")
#這也是為什么之前介紹常用圖形畫法時沒有提及餅圖的原因,餅圖實際上就是柱狀圖,只不過是使用極坐標而已,柱狀圖的高度,對應于餅圖的弧度,餅圖并不推薦,因為人類的眼睛比較弧度的能力比不上比較高度(柱狀圖)
#靶心圖:
ggplot(small)+geom_bar(aes(x=factor(1), fill=cut))+coord_polar()
#風玫瑰圖(windrose)
ggplot(small)+geom_bar(aes(x=clarity, fill=cut))+coord_polar()
圖層(Layer)
photoshop流行的原因在于PS 3.0時引入圖層的概念,ggplot的牛B之處在于使用+號來疊加圖層,這堪稱是泛型編程的典范。
在前面散點圖上,我們已經見識過,加上了一個回歸線擬合的圖層。
#有了圖層的概念,使用ggplot畫起圖來,就更加得心應手。
#做為圖層的一個很好的例子是蝙蝠俠logo,batman logo由6個函數組成,在下面的例子中,我先畫第一個函數,之后再加一個圖層畫第二個函數,不斷重復這一過程,直到六個函數全部畫好。
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
#下面再以生物界中常用的柱狀圖+誤差圖為實例,展示ggplot2非常靈活的圖層。
Normaldata.frame(V=c("Normal", "Cancer"), mean=m, sd=s)
d$V
以上就是“R語言中ggplot2的使用方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。