R語言繪圖——條形圖/柱狀圖

直方圖又稱柱狀圖/條形圖宛渐,用來展示連續(xù)數(shù)據(jù)分布的常用工具,用來估計數(shù)據(jù)的概率分布眯搭。

1.利用hist()函數(shù)繪制

使用格式:hist(x,breaks=n,main="name",labels=FASLE,col="blue",border="red",freq=TRUE)
x 向量窥翩,直方圖的數(shù)據(jù);
breaks 描直方圖的斷點,例如breaks=20表示畫出20個柱子;
labels 邏輯變量鳞仙,TRUE標(biāo)出頻數(shù)
main 標(biāo)題
col 顏色
border外框顏色
freq 邏輯變量寇蚊,TRUE為數(shù)據(jù)頻數(shù),默認(rèn)為TRUE棍好;FALSE則為密度

> data(mtcars) #加載數(shù)據(jù)
> head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

hist(mtcars$mpg,breaks=20,labels=TRUE,main="mtcars hist",col="blue",border="red")

image.png
hist(mtcars$mpg,labels=TRUE,main="mtcars hist",col="blue",border="red",freq=FALSE)
image.png

我們可以用lines畫出數(shù)據(jù)的密度曲線

hist(mtcars$mpg,breaks=20,labels=TRUE,main="mtcars hist",col="blue",border="red",freq=FALSE)
lines(density(mtcars$mpg),col="green",lwd=2)
image.png

還可以畫正態(tài)分布的密度曲線

x<-seq(from=min(mtcars$mpg),to=max(mtcars$mpg),by=0.5)
lines(x,dnorm(x,mean(mtcars$mpg),sd(mtcars$mpg)),col="orange",lwd=2)
image.png

2.利用ggplot2繪制

1.繪制普通條形圖

使用格式 ggplot(data,aes(x=class))+geom_bar()
x 繪制的數(shù)據(jù)
或者 ggplot(data,aes(y=class))+geom_bar(),則類型分布在y軸

> data(mpg)
> head(mpg)
# A tibble: 6 × 11
  manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class 
  <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr> 
1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compa…
2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compa…
3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compa…
4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compa…
5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compa…
6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compa…

g <- ggplot(mpg, aes(x=class))  #直接得出每個class的數(shù)目
g+geom_bar()
image.png
g <- ggplot(mpg, aes(y=class))  #
g+geom_bar()
image.png

當(dāng)想看在該因素中其他因素的情況脸爱,可以利用fill進行繪制,得出疊堆條形圖

g <- ggplot(mpg, aes(x=class))
g + geom_bar(aes(fill = drv))
#得出每種class中drv的分布情況
image.png

橫向的柱狀

ggplot(mpg, aes(y = class)) +
 geom_bar(aes(fill = drv), position = position_stack(reverse = TRUE)) +
 theme(legend.position = "top") #標(biāo)簽位置
#

2.多組條形圖

大多數(shù)時候我們想比較多個組直接某些因素的情況丰涉,例如有時候我們要畫幾個樣本中各個細(xì)胞比例的情況
這是我們可以畫堆疊條形圖

#設(shè)置3個樣本
> Sample1<-c(0.1,0.3,0.3,0.2,0.1)
> Sample2<-c(0.1,0.2,0.3,0.3,0.1)
> Sample3<-c(0.3,0.1,0.2,0.3,0.1)
> data<-cbind(Sample1,Sample2,Sample3)
> rownames(data)<-c("CD4_T","CD8_T","Monocyte","B","NK")
> head(data)  #大多數(shù)時候數(shù)據(jù)的格式是這樣的
         Sample1 Sample2 Sample3
CD4_T        0.1     0.1     0.3
CD8_T        0.3     0.2     0.1
Monocyte     0.3     0.3     0.2
B            0.2     0.3     0.3
NK           0.1     0.1     0.1

#首先我們需要轉(zhuǎn)換數(shù)據(jù)形式
> library(reshape2)
> dat<-melt(data)
> head(dat)
      Var1    Var2 value
1    CD4_T Sample1   0.1
2    CD8_T Sample1   0.3
3 Monocyte Sample1   0.3
4        B Sample1   0.2
5       NK Sample1   0.1
6    CD4_T Sample2   0.1
> colnames(dat)<-c("celltype","Sample","proportion")
> head(dat)
  celltype  Sample proportion
1    CD4_T Sample1        0.1
2    CD8_T Sample1        0.3
3 Monocyte Sample1        0.3
4        B Sample1        0.2
5       NK Sample1        0.1
6    CD4_T Sample2        0.1

dat$proportion<-as.numeric(dat$proportion)
ggplot(dat,aes(x=Sample,y=proportion,fill = celltype))+  #橫坐標(biāo)為樣本,縱坐標(biāo)則為比例
       geom_bar(stat= 'identity',position = "stack")  #position = "stack"則進行堆疊
image.png
#可以調(diào)整x和y將條形進行橫向比較
ggplot(dat,aes(x=proportion,y=Sample,fill = celltype))+ 
       geom_bar(stat= 'identity',position = "stack")  
image.png
ggplot(dat,aes(x=Sample,y=proportion,fill = celltype))+ 
geom_bar(stat='identity',position='dodge')   #position='dodge') 則不進行堆疊
image.png

此時不好比較,我們可以把同類型細(xì)胞放在一塊比較埋凯,即橫坐標(biāo)變?yōu)榧?xì)胞類型
在實驗過程中可以采用容易分析的形式進行比較

ggplot(dat,aes(x=celltype,y=proportion,fill =Sample ))+ 
geom_bar(stat='identity',position='dodge')   #則不進行堆疊
image.png

以上是基本繪制的參數(shù),此外還有美化的一些參數(shù)
labs 橫縱坐標(biāo)軸的名稱
ggttitle 標(biāo)題名稱
geom_bar(width= )設(shè)置條形大小,默認(rèn)情況下,設(shè)置為數(shù)據(jù)分辨率的90%蚂蕴。
theme_bw() 改變背景顏色
scale_fill_manual 自定義顏色

更多參數(shù)見R語言繪圖——數(shù)據(jù)可視化ggplot2 介紹和主要的參數(shù)

library(RColorBrewer)   
cols<-brewer.pal(8,"YlOrRd")[1:5]
names(cols)<-rownames(data)
head(cols)
    CD4_T     CD8_T  Monocyte         B        NK 
"#FFFFCC" "#FFEDA0" "#FED976" "#FEB24C" "#FD8D3C" 

ggplot(dat,aes(x=Sample,y=proportion,fill = celltype))+  
       geom_bar(stat= 'identity',position = "stack",width=0.2) + 
       labs(x="Sample ID",y="CellType Proportion")+
       ggtitle("Sample Celltype Proportion")+
       theme_bw()+
       scale_fill_manual(values = cols)
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市积糯,隨后出現(xiàn)的幾起案子掂墓,更是在濱河造成了極大的恐慌谦纱,老刑警劉巖看成,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異跨嘉,居然都是意外死亡川慌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門祠乃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來梦重,“玉大人,你說我怎么就攤上這事亮瓷∏倥。” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵嘱支,是天一觀的道長蚓胸。 經(jīng)常有香客問我,道長除师,這世上最難降的妖魔是什么沛膳? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮汛聚,結(jié)果婚禮上锹安,老公的妹妹穿的比我還像新娘。我一直安慰自己倚舀,他們只是感情好叹哭,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著痕貌,像睡著了一般风罩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芯侥,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天泊交,我揣著相機與錄音乳讥,去河邊找鬼。 笑死廓俭,一個胖子當(dāng)著我的面吹牛云石,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播研乒,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼汹忠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了雹熬?” 一聲冷哼從身側(cè)響起宽菜,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎竿报,沒想到半個月后铅乡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡烈菌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年阵幸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芽世。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡挚赊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出济瓢,到底是詐尸還是另有隱情荠割,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布旺矾,位于F島的核電站蔑鹦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏宠漩。R本人自食惡果不足惜举反,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扒吁。 院中可真熱鬧火鼻,春花似錦、人聲如沸雕崩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盼铁。三九已至粗蔚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間饶火,已是汗流浹背鹏控。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工致扯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人当辐。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓抖僵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缘揪。 傳聞我的和親對象是個殘疾皇子耍群,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容