今天是開始學(xué)習(xí)R語言的一天荡含,由于前期已經(jīng)有一部分了解,R也已經(jīng)安裝完畢届垫,先說說一些tips
- 前期基礎(chǔ)一定要打好释液,書一定要認(rèn)真看,推薦《R語言實(shí)戰(zhàn)》
- 做好不斷報(bào)錯(cuò)的準(zhǔn)備装处,其實(shí)慢慢掌握來自于不斷解決各種報(bào)錯(cuò)误债,所以心態(tài)一定擺好浸船,報(bào)錯(cuò)是常有的事
- 在輸入代碼的過程中,包括各種標(biāo)點(diǎn)符號(hào)都要用英文輸入法寝蹈,不然會(huì)報(bào)錯(cuò)
- 電腦的路徑設(shè)置改成都是英文李命,前期因?yàn)檫@個(gè)吃了不少虧
ggplot2學(xué)習(xí)
利用ggplot2的內(nèi)置數(shù)據(jù)框mpg作為數(shù)據(jù)
所有的作圖基礎(chǔ)都基于 ggplot(data =) + (mapping = aes())
ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy))
- 不同類型的點(diǎn)顯示顏色,以class作為分類區(qū)分
ggplot(data = mpg) + geom_point(mapping = aes(x = displ, y = hwy, color = class))
- 設(shè)置點(diǎn)的大小
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, size = class))
- 同時(shí)設(shè)置不同的映射箫老,只需要知道是什么含義就能加封字,shape指形狀,alpha 指透明度
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, color = class,shape = class, alpha = class))
在這里會(huì)有一個(gè)警告信息耍鬓,自動(dòng)設(shè)置形狀只有6個(gè)阔籽,而這里class有7中,第七種就被移除出去
- 也可以根據(jù)自己的喜好改變散點(diǎn)的形狀和顏色,下面的代碼我們可以看到color = "blue"是不在映射里面的
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy), color = "blue")
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy, stroke = 3),shape=21,color = "yellow",fill="red")
shape選擇不同序號(hào)牲蜀,代表不同的形狀
- 空心形狀 0-14 color邊框
- 實(shí)心形狀 15-20 color填充
填充形狀 21-24 color邊框笆制,和fill填充
- 單個(gè)變量進(jìn)行單面顯示,nrow指定分面后顯示幾行,ncol指定分面后顯示幾列,
需要注意的是
~分面依據(jù)必須是離散型變量。
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ class, nrow = 2) #分兩行展示
- 兩個(gè)變量分面 facet_grid()
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(drv ~ cyl)
- 不想在行或列維度中分面涣达,用.代替變量名
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_grid(. ~ cyl)
效果和單個(gè)變量分面一樣在辆,就是只要1行
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy)) +
facet_wrap(~ cyl, nrow = 1)
- 接下來理解不同的幾何對(duì)象,嗯度苔,就是要畫不同的圖开缎,上面畫的散點(diǎn)圖,還可以畫線圖林螃,柱狀圖
ggplot(data = mpg) +
geom_smooth(mapping = aes(x = displ, y = hwy,linetype = drv))
- 如果要同時(shí)畫散點(diǎn)圖和線圖,這里就是不同的圖層疊加俺泣,學(xué)會(huì)一個(gè)新名詞疗认,局部映射
ggplot(data = mpg) +
geom_point(mapping = aes(x = displ, y = hwy,color = drv,)) +
geom_smooth(mapping = aes(x = displ, y = hwy,color = drv))
- 像上面要分別在散點(diǎn)和線性映射里面分別設(shè)置color,就會(huì)很麻煩伏钠,所以就引入了全局映射
ggplot(data = mpg, mapping = aes(x = displ, y = hwy,color = drv)) +
geom_point() +
geom_smooth()
統(tǒng)計(jì)變換
這個(gè)目前還有待于我進(jìn)一步理解横漏,大約看懂了,但實(shí)際操作是如何應(yīng)用熟掂?
- 需要好好理解這段缎浇,以前不知道這種圖怎么做出來,比如在β珠蛋白簇上各個(gè)時(shí)期珠蛋白所占比例就是用這種方法赴肚,或者說不同分組的細(xì)胞周期表達(dá)模式不同素跺,position="fill",這樣設(shè)置使得每組堆疊條形具有相同的高度誉券。
geom_bar(mapping = aes(x = cut, fill = clarity), position = "fill")
加入alpha = 1/2(數(shù)字越小越透明)指厌,可以設(shè)置透明度
geom_bar(mapping = aes(x = cut, fill = clarity), alpha = 1/2, position = "fill")
- 把剛剛散點(diǎn)圖的代碼換成geom_jitter(),出來的點(diǎn)會(huì)變多,因?yàn)樵局丿B被擋住的點(diǎn)也顯示出來了
這個(gè)是geom_point
geom_point(mapping = aes(x = displ, y = hwy,color=class))
換成geom_jitter()
ggplot(data = mpg) +
geom_jitter(mapping = aes(x = displ, y = hwy,color=class))
- 一個(gè)棒棒的翻轉(zhuǎn):coord_flip翻轉(zhuǎn)坐標(biāo)系
原來的樣紙
ggplot(data = mpg, mapping = aes(x = class, y = hwy,color=class)) +
geom_boxplot()
翻轉(zhuǎn)后的樣紙踊跟,莫名就是覺得高級(jí)哈哈
ggplot(data = mpg, mapping = aes(x = class, y = hwy,color=class)) +
geom_boxplot()+
coord_flip()
- 把前面的柱形圖畫成圈圈圖,神似蔥油餅
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut, fill = clarity), position = "fill") +
coord_polar(theta = "y")