R學(xué)習(xí)筆記 1、ggplot2

ggplot2?圖層元素

1. 數(shù)據(jù)(data):將要可視化的數(shù)據(jù)

2. 映射(aes):數(shù)據(jù)中的變量值 一般是X\Y


3. 幾何對(duì)象(geom):如 bar 條形圖惶凝,point 散點(diǎn)圖


4. 統(tǒng)計(jì)變換(stats):對(duì)數(shù)據(jù)進(jìn)行計(jì)算


5. 標(biāo)度(scale):變量以什么形狀笋额、顏色映射到圖形上


6. 分面(facet):將數(shù)據(jù)拆開(kāi),進(jìn)行分層畫(huà)圖


7. 圖層(Layer):數(shù)據(jù)喜颁、映射稠氮、幾何對(duì)象、統(tǒng)計(jì)變換等構(gòu)成一個(gè)圖層半开。圖層可以允許用戶(hù)一步步的構(gòu)建圖形隔披,方便單獨(dú)對(duì)圖層進(jìn)行修改。


8.主題(theme):主題設(shè)定寂拆,與數(shù)據(jù)無(wú)關(guān)的圖層可以通過(guò)這個(gè)函數(shù)實(shí)現(xiàn)奢米。

9. 注釋(annotate): 對(duì)圖形增加文字類(lèi)的注釋


ggplot ()圖層

ggplot ()圖層包括數(shù)據(jù)和映射抓韩。ggplot 函數(shù)相當(dāng)于一幅基本的畫(huà)布,畫(huà)

者在上面繪制好坐標(biāo)軸鬓长,設(shè)置好基本的格局和色彩谒拴、線條。


geom_XXX ()? 圖層

geom_XXX() 指的是我們要繪制的圖形類(lèi)型涉波,常見(jiàn)包括以下:

geom_point()繪制散點(diǎn)圖

geom_bar()繪制條形圖

geom_line()繪制線圖

geom_histogram()繪制直方圖

geom_boxplot()繪制箱式圖

geom_density()繪制概率密度函數(shù)



scale_ XXX?圖層

scale_ XXX 標(biāo)度是一種函數(shù)英上,size 對(duì)大小進(jìn)行調(diào)整, shape 對(duì)形狀進(jìn)行調(diào)整啤覆,

fill苍日、col對(duì)顏色進(jìn)行調(diào)整,可根據(jù)自己喜好調(diào)整


ggplot(data =數(shù)據(jù),? aes(x =變量1 , y = 變量 2,col=變量3)) +

??? ?geom_point(stat ='count'窗声,position=”dodge”)+? #計(jì)數(shù)相恃、并排

????scale_fill_manual(values = c("顏色1","顏色2"))

facet_grid()? 圖層

facet_grid(...) 對(duì)圖層進(jìn)行分面,數(shù)據(jù)分成多個(gè)子集進(jìn)行繪圖


ggplot(data =數(shù)據(jù),? aes(x =變量 1 , y = 變量2,col=變量3)) +

geom_point(stat = 'count'笨觅,position=”dodge”)+

scale_colour_manual(values = c("顏色1","顏色2"))+

facet_grid(變量 4~變量5) #要求變量屬于分類(lèi)變量豆茫,分成多行多列的圖


theme()? 圖層

theme() 是主題修改,是一個(gè)對(duì)繪圖精雕細(xì)琢的過(guò)程, 主要對(duì)標(biāo)題屋摇、坐標(biāo)軸

標(biāo)簽揩魂、圖例標(biāo)簽等文字調(diào)整, 以及網(wǎng)格線、背景炮温、軸的顏色搭配火脉。

theme(plot.title = element_text(size = , color =, hjust =, face = ))




ggplot2?的作圖一般步驟為:

1 準(zhǔn)備數(shù)據(jù)柒啤,一般為數(shù)據(jù)框倦挂,且一般為長(zhǎng)表,即每個(gè)觀測(cè)時(shí)間占一行担巩,每個(gè)觀

測(cè)變量占一列方援。

2、載入 R 包涛癌,R 包括可以通過(guò) tidyverse包整體載入犯戏。

3、 將數(shù)據(jù)輸入到ggplot()函數(shù)中拳话,并指定參與作圖的每個(gè)變量分別 映射到哪些

圖形特性先匪, 比如映射為 x 坐標(biāo)、y 坐標(biāo)弃衍、 顏色呀非、 形狀等。 這些映射稱(chēng)為aesthetic

mappings 或 aesthetics。

很多人不明白所謂的 映射岸裙。其實(shí)映射猖败,通俗來(lái)講,就是告訴軟件降允,這幅圖所

涉及到的變量恩闻, 并且指出每個(gè)變量的用途。 比如拟糕, x=gender判呕, 指的是x 軸是性別倦踢;

y=age送滞,指的是 y 軸表示年齡大小,shape=location辱挥,指的是不同地區(qū)圖標(biāo)的形狀

不一樣(比如城市用星號(hào)犁嗅,農(nóng)村用三角)


4、選擇一個(gè)合適的圖形類(lèi)型晤碘,函數(shù)名以 geom_開(kāi)頭褂微,如 geom_point()表示散點(diǎn)

圖。圖形類(lèi)型簡(jiǎn)稱(chēng)為 geom园爷。將ggplot()部分與 geom_xxx()部分用加號(hào)連接宠蚂。

到此已經(jīng)可以作圖,下面的步驟是進(jìn)一步的細(xì)化設(shè)定童社。

5求厕、設(shè)定適當(dāng)?shù)淖鴺?biāo)系統(tǒng), 如coord_cartesian(), scale_x_log10()扰楼。 仍用加號(hào)連接呀癣。

6、設(shè)定標(biāo)題和圖例位置等弦赖,如 labs()项栏。仍用加號(hào)連接。


?這個(gè)流程的一個(gè)大致的模板為:

p <-ggplot(data=<輸入數(shù)據(jù)框>,

????mapping=aes(<維度>=<變量名>,

????<維度>=<變量名>, <...>))

p +geom_<圖形類(lèi)型>(<...>)+

?scale_<映射>_<類(lèi)型>(<...>) +

?coord_<類(lèi)型>(<...>)+

?labs(<...>)

其中<...>表示額外的選項(xiàng)蹬竖。變量 p 包含做出的圖形的所有數(shù)據(jù)與設(shè)定沼沈,變量

名可以任意取。

網(wǎng)上找了網(wǎng)友分享的學(xué)習(xí)筆記币厕,我照著他的代碼跑了一遍:https://blog.csdn.net/wzgl__wh/article/details/51901093


<library(ggplot2)

<ggplot(data=mpg,mapping = aes(x=cty,y=hwy))+geom_point()+aes(colour=factor(mpg$year))


其中data=mpg,mapping = aes(x=cty,y=hwy)表示數(shù)據(jù)層庆冕,geom_point()表示幾何圖形層,aes(colour=factor(mpg$year))表示美學(xué)圖層。我將year映射為映射到顏色屬性劈榨。

我們也可以繪制出它的擬合曲線以及置信區(qū)間访递,它根據(jù)年份繪出了兩條擬合曲線以及置信區(qū)間。

> ggplot(data=mpg,mapping = aes(x=cty,y=hwy))+geom_point()+aes(colour=factor(mpg$year))+stat_smooth()

只想繪制一條擬合曲線和一個(gè)置信區(qū)間同辣,我們只需要將代碼稍微改變一下就可以搞定拷姿。

> ggplot(data=mpg,mapping = aes(x=cty,y=hwy))+geom_point(aes(colour=factor(mpg$year)))+stat_smooth()

現(xiàn)在將displ變量映射到散點(diǎn)大小惭载,繪制出來(lái)的大小不同的散點(diǎn)。

> ggplot(data=mpg,mapping =aes(x=cty,y=hwy))+

+? ? ?geom_point(aes(colour=factor(year),size=displ))+

+? ? ?stat_smooth()

使用過(guò)Photoshop的人一定知道透明度响巢,即alpha描滔。當(dāng)然我們的ggplot2包也可以改變alpha值得大小來(lái)改變散點(diǎn)的透明度。alpha的值在0—1之間踪古,不在這個(gè)范圍的話則會(huì)報(bào)錯(cuò)含长。為了與前面的圖片有明顯的區(qū)別,我們?cè)龠@里的alpha值調(diào)的比較小伏穆。一般默認(rèn)alpha值得大小為1拘泞。

> ggplot(data=mpg,mapping = aes(x=cty,y=hwy))+

+? ? ?geom_point(aes(colour=factor(mpg$year),size=displ),alpha=0.25)+

+? ? ?stat_smooth()




也可以給圖片增加標(biāo)題,并精細(xì)修改圖片枕扫,給圖片增加x,y軸說(shuō)明陪腌,以及其他說(shuō)明。

ggplot(mpg, aes(x=cty, y=hwy))+

? geom_point(aes(colour=class,size=displ),alpha=0.6,position = "jitter")+

? stat_smooth()+

? scale_size_continuous(range = c(4, 10))+

? facet_wrap(~ year,ncol=1)+

? ggtitle("汽車(chē)油耗與型號(hào)")+

? labs(y='每加侖高速公路行駛距離',

? ? ? x='每加侖城市公路行駛距離')+

? guides(size=guide_legend(title='排量'),

? ? ? ? colour = guide_legend(title='車(chē)型',

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? override.aes=list(size=5)))



?我們可以把不同的圖層疊加在一起烟瞧,這樣就畫(huà)在了同一張圖上面诗鸭。比如說(shuō)我們要研究mpg數(shù)據(jù)中cty和hwy,以及displ之間的關(guān)系参滴,我們就可以通過(guò)如下代碼强岸,將他們之間的散點(diǎn)圖畫(huà)在一起。

?ggplot()+? geom_point(aes(x=mpg$cty,y=mpg$hwy),color="red")+

?geom_point(aes(x=mpg$cty,y=mpg$displ),color="green")


接下來(lái)砾赔,我們來(lái)繪制一個(gè)扇形圖蝌箍,我們來(lái)統(tǒng)計(jì)一下class中各個(gè)品牌所占比例,代碼和圖片如下:

ggplot(mpg)+geom_bar(width=1, aes(x=factor(1),fill=mpg$class))+? coord_polar(theta="y")


也可以通過(guò)使用ggplot2包來(lái)繪制?Coxcomb?Plots (雞冠花圖过蹂,又名玫瑰圖)十绑,這個(gè)也非常簡(jiǎn)單。width的值可以調(diào)整各個(gè)扇形區(qū)域之間的距離酷勺。

ggplot(mpg, aes(x= factor(mpg$class))) +? geom_bar(width=0.7,aes(color=factor(mpg$class))) + coord_polar()


也可以給他增添顏色本橙,代碼只要稍微改一下:

ggplot(mpg, aes(x= factor(mpg$class),fill=mpg$class)) +? geom_bar(width=0.7) + coord_polar()


這樣跑下來(lái)加深了對(duì)于開(kāi)始說(shuō)的ggplot2?的作圖步驟的理解。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脆诉,一起剝皮案震驚了整個(gè)濱河市甚亭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌击胜,老刑警劉巖亏狰,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異偶摔,居然都是意外死亡暇唾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)策州,“玉大人瘸味,你說(shuō)我怎么就攤上這事」还遥” “怎么了旁仿?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)孽糖。 經(jīng)常有香客問(wèn)我枯冈,道長(zhǎng),這世上最難降的妖魔是什么办悟? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任尘奏,我火速辦了婚禮,結(jié)果婚禮上誉尖,老公的妹妹穿的比我還像新娘罪既。我一直安慰自己铸题,他們只是感情好铡恕,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著丢间,像睡著了一般探熔。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上烘挫,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天诀艰,我揣著相機(jī)與錄音,去河邊找鬼饮六。 笑死其垄,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卤橄。 我是一名探鬼主播绿满,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼窟扑!你這毒婦竟也來(lái)了喇颁?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤嚎货,失蹤者是張志新(化名)和其女友劉穎橘霎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體殖属,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姐叁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片外潜。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谭溉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橡卤,到底是詐尸還是另有隱情扮念,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布碧库,位于F島的核電站柜与,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏嵌灰。R本人自食惡果不足惜弄匕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沽瞭。 院中可真熱鬧迁匠,春花似錦、人聲如沸驹溃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)豌鹤。三九已至亡哄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間布疙,已是汗流浹背蚊惯。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灵临,地道東北人截型。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像儒溉,于是被迫代替她去往敵國(guó)和親宦焦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345