其實(shí)圖形的基本組成都很簡單,無非就是點(diǎn)、線、矩形、圓圈等,但是稍作改變就會變成完全不同的圖。就好像PCA圖和火山圖一樣,本質(zhì)都是點(diǎn)圖。今天我們來講一講條形圖的變形。
化妝后“條形圖”
首先來看看幾張不一樣的“條形圖”。
這幾張圖乍一看和我們之前看到的很不一樣,但是仔細(xì)一看其所用的基本元素不就是我們的條形圖嗎?
左邊的和中間的我們稱為偏差圖,右側(cè)的稱為金字塔圖。
可以看到三張圖之間都有一些相同點(diǎn)。那么這三張圖我們可以用于展示什么樣的數(shù)據(jù)呢,舉個(gè)例子,比如我們想要展示轉(zhuǎn)錄組數(shù)據(jù)。
那么第一張圖綠色的可以用于展示top10表達(dá)量增高的基因,紅色的可以展示top10表達(dá)量下降的基因,橫坐標(biāo)可以用于展示Foldchange。
第二張圖,比如我們轉(zhuǎn)綠組的數(shù)據(jù)是個(gè)時(shí)間梯度的數(shù)據(jù),分別檢測了刺激后2個(gè)小時(shí)、4個(gè)小時(shí)、8個(gè)小時(shí)、12個(gè)小時(shí)的轉(zhuǎn)錄組數(shù)據(jù)。那么我們就可以展示這四個(gè)時(shí)間點(diǎn)的樣本與對照組變化基因的情況。左側(cè)(暖色部分)可以展示表達(dá)量降低的基因,右側(cè)(冷色部分)可以展示表達(dá)量升高的基因,因此橫坐標(biāo)為基因數(shù)量。而具體的顏色可以展示他們的功能比如GO數(shù)據(jù)庫的功能,也可以用于展示Folachange的倍數(shù),比如紅色為上調(diào)6倍以上的,橘黃色為3倍以上,黃色為2倍以上,那可以看到只有少部分的基因是6倍以上。
那么最后一張圖呢?可以像上述描述的展示多組轉(zhuǎn)錄組數(shù)據(jù)上調(diào)或者下調(diào)。那也可以展示富集聚類的結(jié)果。如某個(gè)功能中顯著改變和不改變的基因等。
那么上述的圖應(yīng)該怎么做呢?
怎么做金字塔圖
1)需要什么格式的數(shù)據(jù)
#獲取數(shù)據(jù)
dat <- read.csv("https://raw.githubusercontent.com/selva86/datasets/master/email_campaign_funnel.csv")
觀察一下這個(gè)數(shù)據(jù),可以看到Users中為了能夠在x軸正負(fù)半軸分別現(xiàn)實(shí)所以Male為負(fù)數(shù),F(xiàn)emale的值為正數(shù)。因此,如果我們想要用自己的數(shù)據(jù)做這類圖,也要注意正負(fù),要對數(shù)據(jù)進(jìn)行適當(dāng)?shù)奶幚?,對其中一部分的?shù)據(jù)取負(fù)。
2)如何作圖
金字塔圖
library(ggplot2)
library(RColorBrewer)
ggplot(dat,aes(x=Stage,y=Users))+
geom_bar(stat = "identity",aes(fill=Gender))+
scale_fill_brewer(palette='Set1')+
theme_bw()+
coord_flip()
怎么做偏差圖
1)需要什么格式的數(shù)據(jù)
dat$Group<-paste(dat$Stage,dat$Gender,sep="_")
dat<-arrange(dat,dat$Gender,dat$Stage)#先按Gender排列再按Stage排列
dat$Group<-factor(dat$Group,levels=rev(unique(dat$Group)))
labelname<-rep(rev(unique(dat$Stage)),2)
ggplot(dat,aes(x=Group,y=Users))+
geom_bar(stat = "identity",aes(fill=Gender))+
scale_fill_brewer(palette='Set1')+
scale_x_discrete(labels = labelname)+
theme_bw()+
xlab("")+
coord_flip()
color_palette<-colorRampPalette(brewer.pal(8,"Paired"))(18)
ggplot(dat,aes(x=Gender,y=Users))+
geom_bar(stat = "identity",aes(fill=Stage))+
scale_fill_manual(values=color_palette)+
theme_bw()+
theme(
legend.position = c("bottom"),
legend.margin = margin(1,0,1,0)
)+
xlab("")+
coord_flip()
往期 R數(shù)據(jù)可視化 分享
R數(shù)據(jù)可視化7: 氣泡圖 Bubble Plot
R數(shù)據(jù)可視化6: 面積圖 Area Chart
R數(shù)據(jù)可視化5: 熱圖 Heatmap
R數(shù)據(jù)可視化4: PCA和PCoA圖
R數(shù)據(jù)可視化3: 直方/條形圖
R數(shù)據(jù)可視化2: 箱形圖 Boxplot
R數(shù)據(jù)可視化1: 火山圖