本系列課程要求大家有一定的R語(yǔ)言基礎(chǔ),對(duì)于完全零基礎(chǔ)的同學(xué),建議去聽(tīng)一下師兄的《生信必備技巧之——R語(yǔ)言基礎(chǔ)教程》。本課程將從最基本的繪圖開(kāi)始講解,深入淺出的帶大家理解和運(yùn)用強(qiáng)大而靈活的ggplot2包。內(nèi)容包括如何利用ggplot2繪制散點(diǎn)圖、線圖、柱狀圖、添加注解、修改坐標(biāo)軸和圖例等。
本次課程所用的配套書籍是:《R Graphic Cookbooks》
除了以上的基本圖形外,師兄還會(huì)給大家講解箱線圖、提琴圖、熱圖、火山圖、氣泡圖、桑基圖、PCA圖等各種常用的生信圖形的繪制,還不趕緊加入收藏夾,跟著師兄慢慢學(xué)起來(lái)吧!
第二章:柱狀圖深入探究
柱狀圖可能是最常用的一種數(shù)據(jù)可視化。它們通常用于顯示數(shù)值(在y軸上),用于顯示不同類別的數(shù)值(在x軸上)。例如,柱狀圖可以用來(lái)顯示四種不同商品的價(jià)格。柱狀圖通常不適合顯示一段時(shí)間內(nèi)的價(jià)格,因?yàn)闀r(shí)間是一個(gè)連續(xù)的變量。
在制作柱狀圖時(shí),您應(yīng)該注意一個(gè)重要的區(qū)別:柱狀圖的高度有時(shí)表示數(shù)據(jù)集中的案例數(shù),有時(shí)表示數(shù)據(jù)集中的值。記住這一區(qū)別——這可能會(huì)引起混淆,因?yàn)樗鼈兣c數(shù)據(jù)的關(guān)系非常不同,但兩者使用相同的術(shù)語(yǔ)。
- 回顧:
library(ggplot2)
## 單一柱狀圖
library(gcookbook) # 包內(nèi)含有需要的數(shù)據(jù);
pg_mean <- pg_mean
ggplot(pg_mean,aes(x = group, y = weight)) + geom_bar(stat = "identity")
# 提示:繪圖函數(shù)里的stat參數(shù)表示對(duì)樣本點(diǎn)做統(tǒng)計(jì)的方式,
# stat="count"(默認(rèn)):表示一個(gè)x 對(duì)應(yīng) 落到該x的樣本數(shù),
# stat = "identity":表示一個(gè)x 對(duì)應(yīng) 一個(gè)y,
# ”說(shuō)白了就是,identity提取橫坐標(biāo)x對(duì)應(yīng)的y值,count提取橫坐標(biāo)x的頻數(shù)。
# 當(dāng)x是連續(xù)型變量的時(shí)候,繪制出的柱狀圖會(huì)有一些小的差別:
BOD <- BOD
ggplot(BOD,aes(Time,demand)) + geom_bar(stat = "identity")
ggplot(BOD,aes(factor(Time),demand)) + geom_bar(stat = "identity")
- 修改顏色:
# 修改柱狀圖的填充(fill)和描邊(color):
ggplot(pg_mean,aes(group, weight)) +
geom_bar(stat = "identity",fill = "lightblue", color = "black")
# 也可通過(guò)分組變量設(shè)置顏色:
cabbage_exp <- cabbage_exp
ggplot(cabbage_exp,aes(Date, fill = Cultivar)) +
geom_bar(position = "dodge")
# 通過(guò)scale_fill_brewer()修改顏色模式:
ggplot(cabbage_exp,aes(Date, Weight, fill = Cultivar)) +
geom_bar(position = "dodge",stat = "identity",color = "black") +
scale_fill_brewer(palette = "Pastel1")


拓展: position參數(shù): 此處的position主要是指對(duì)圖像的微調(diào),最常見(jiàn)的應(yīng)用是在分組的柱形圖(bar)中,因?yàn)榉纸M的柱形圖會(huì)產(chǎn)生組內(nèi)堆積和不堆積兩種主要效果。
-
position常用參數(shù)值:其中stack和dodge最為常用。**
- "identity": 不調(diào)整,組內(nèi)前后重疊;
- "stack": 堆積,默認(rèn);
- "fill":按比例堆積;
- "dodge": 分散
- ColorBrewer 配色,使用的是scale_colour_ brewer ( )、scale_fill_ brewer ( )。要想了解所有的調(diào)色板,可以使用RColorBrewer::display.brewer.all()查看。以下是調(diào)色板:
