幾個最近作圖喜歡用的版式

circlize的使用:https://jokergoo.github.io/circlize_book/book/index.html
做環(huán)形熱圖:https://zhuanlan.zhihu.com/p/136138642
做環(huán)形熱圖2:https://www.shenxt.info/post/r-circlize-study-2/
1浙巫、預(yù)設(shè)的theme

theme(axis.line = element_line(size = 1.1, linetype = "solid"), 
        axis.text.y = element_text(size = 13,face = "bold",colour = "black",margin = margin(0,5,0,40)),#margin調(diào)整y軸的text的位置,多用于text過長無法全部顯示時
        axis.text.x = element_text(size = 15,face = "bold",colour = "black"), 
        axis.ticks = element_line(colour = "black"),
        axis.title = element_text(size = 12, face = "bold"),
        panel.grid.major= element_line(size = 0.5,color = "grey",linetype = 2), #畫上輔助線验游,虛線
        panel.grid = element_blank(),
        panel.background = element_rect(size = 1,color = "black",fill = "white"),#當想在top和right處畫上邊框時可以使用
        strip.text = element_text(size = 13,color = "white",face = "bold"),#分頁的字體調(diào)整
        strip.background = element_rect(fill=pal_aaas()(10)[5],color = "black",size=1),#分頁的標簽的背景調(diào)整
        #panel.grid.major = element_blank(),
        #panel.background = element_blank(),
        legend.title = element_text(size = 14, face = "bold"),
        legend.text = element_text(size = 11, face = "bold"), 
        legend.position = "right", 
        legend.direction = "vertical")

2乙濒、韋恩圖的另類表示方式-----熱圖

######################################################## 
#-------------------------------------------------------
# Topic:韋恩圖轉(zhuǎn)熱圖
# Author:Wang Haiquan
# Date:Mon Jan 11 11:38:11 2021
# Mail:mg1835020@smail.nju.edu.cn
#-------------------------------------------------------
########################################################

library(pheatmap)
library(openxlsx)
library(reshape2)

xxx_DEG_down<-read.xlsx("xxx.xlsx",sheet=2)
xxx_DEG_up<-read.xlsx("xxx.xlsx",sheet=3)

xxx_DEG<-list(xxx_DEG_up=xxx_DEG_up,
                 xxx_DEG_down=xxx_DEG_down)
xxx_DEG_long<-lapply(xxx_DEG,function(x){
  a=melt(x,measure.vars=1:4,variable.name = "Stage",value.name = "gene")
  a=a[!is.na(a$gene),]
  return(a)
})
#發(fā)現(xiàn)同一組找到的差異基因有重復(fù)谍椅!這一步中去重
xxx_DEG_long<-lapply(xxx_DEG_long,function(x){
  x$is.duplicated<-ifelse(duplicated(paste(x$Stage,x$gene,sep = "-")),T,F)
  x<-x[x$is.duplicated==F,]
  x$Stage<-factor(x$Stage,levels = unique(x$Stage))
  x$is.duplicated=NULL
  return(x)
})
#轉(zhuǎn)化為寬矩陣,并計算頻數(shù)
xxx_DEG_width<-lapply(xxx_DEG_long,function(x){
  a=t(dcast(x,formula = Stage~gene,fun.aggregate = length))
  print(a[1,1:4])
  colnames(a)<-as.character(a[1,1:4,drop=T])
  a=a[-1,]
  b<-rownames(a)
  a<-apply(a,2,as.numeric)
  rownames(a)<-b
  a<-as.data.frame(a)
  return(a)
})
#制作上調(diào)的注釋文件
xxx_DEG_up_rowanno<-data.frame(row.names = rownames(xxx_DEG_width$xxx_DEG_up),
                                  stage=apply(xxx_DEG_width$xxx_DEG_up,1,
                                              function(x){
                                                if(sum(x)==1){colnames(xxx_DEG_width$xxx_DEG_up)[which(x==1)]
                                                }else{
                                                  paste("rep_num",sum(x),sep = "=")
                                                }}))
xxx_DEG_up_rowanno$stage<-factor(xxx_DEG_up_rowanno$stage,levels = c("rep_num=3","rep_num=2","GO","FGO","MIO","MIIO"))
xxx_DEG_up_rowanno<-xxx_DEG_up_rowanno[order(xxx_DEG_up_rowanno$stage),,drop=F]
#上調(diào)熱圖
pheatmap(xxx_DEG_width$xxx_DEG_up[rownames(xxx_DEG_up_rowanno),],
         scale = "none",
         show_rownames = F,show_colnames = T,cluster_cols = F,cluster_rows = F,
         annotation_row = xxx_DEG_up_rowanno,
         color = c("grey","red"),legend = F,main = "xxx_DEG_up")
#制作下調(diào)的注釋文件
xxx_DEG_down_rowanno<-data.frame(row.names = rownames(xxx_DEG_width$xxx_DEG_down),
                                    stage=apply(xxx_DEG_width$xxx_DEG_down,1,
                                                function(x){
                                                  if(sum(x)==1){colnames(xxx_DEG_width$xxx_DEG_down)[which(x==1)]
                                                  }else{
                                                    paste("rep_num",sum(x),sep = "=")
                                                  }}))
xxx_DEG_down_rowanno$stage<-factor(xxx_DEG_down_rowanno$stage,levels = c("rep_num=3","rep_num=2","GO","FGO","MIO","MIIO"))
xxx_DEG_down_rowanno<-xxx_DEG_down_rowanno[order(xxx_DEG_down_rowanno$stage),,drop=F]
#熱圖
pheatmap(xxx_DEG_width$xxx_DEG_down[rownames(xxx_DEG_down_rowanno),],
         scale = "none",
         show_rownames = F,show_colnames = T,cluster_cols = F,cluster_rows = F,
         annotation_row = xxx_DEG_down_rowanno,
         color = c("grey","blue"),legend = F,main = "xxx_DEG_down")

放上文章中的模板圖

3饭于、環(huán)形熱圖_1

mat<-as.matrix(t(apply(xxx[,rev(colnames(xxx))],1,scale)))
rownames(mat)<-rownames(xxx_mat)
col_fun = colorRamp2(breaks = c(-2, 0, 2), colors = c("blue", "white", "red"))
lgd = Legend(title = "expr", col_fun = col_fun)
circos.clear()
circos.par(gap.after = c(90),start.degree = 0)
circos.heatmap(mat,
               col = col_fun,
               track.height = 0.5,
               dend.side = "inside", 
               rownames.side = "outside",
               rownames.cex = 0.7,
               cluster = T,
               bg.lty = 1,bg.border = "black",bg.lwd = 2
               )
draw(lgd, x = unit(0.6, "npc"), y = unit(0.7, "npc"))
circos.clear()
放上文章中的模板圖

4伸蚯、環(huán)形熱圖_2

#使用原始繪圖函數(shù)畫環(huán)形圖
#mat為經(jīng)過了scale的表達矩陣缠沈,行為基因膘壶,列為樣本错蝴。
mat_sub<-t(mat)
dend <-as.dendrogram(hclust(dist(t(mat_sub))))
n=3
dend <-dend %>% set("branches_k_color", k = n) 
par(mar=c(7.5,3,1,0))
plot(dend)
mat2 = mat_sub[, order.dendrogram(dend)]
lable1=row.names(mat2);lable1
lable2=colnames(mat2);lable2
circos.clear()
circos.par(canvas.xlim =c(-1.3,1.3),
           canvas.ylim = c(-1.3,1.3),
           cell.padding = c(0,0,0,0), 
           gap.degree =90)
factors = "a"
circos.initialize(factors, xlim = c(0, ncol(mat2)))
nr<-nrow(mat2);nc<-ncol(mat2);lable2=colnames(mat2);col_mat<-colorRamp2(c(-1.5, 0, 1.5), c("skyblue", "white", "red"))(mat2)
circos.track(ylim = c(0, nr),bg.border = NA,track.height = 0.02*nr,
             panel.fun = function(x, y) {
               for(i in 1:nr) {
                 circos.rect(xleft = 1:nc - 1, ybottom = rep(nr - i, nc),
                             xright = 1:nc, ytop = rep(nr - i + 1, nc),
                             border = "white",
                             col = col_mat[i,])
                 # circos.text(x = nc,
                 #             y = 26 -i,
                 #             labels = lable1[i],
                 #             facing = "downward", niceFacing = TRUE,
                 #             cex = 0.6,
                 #             adj = c(-0.2, 0))
               }
             })
for(i in 1:nc){
  circos.text(x = i-0.4,
              y = 27,
              labels = lable2[i],
              facing = "clockwise", niceFacing = TRUE,
              cex = 1,adj = c(0, 0))
}
max_height <-max(attr(dend, "height"))
circos.track(ylim = c(0, max_height),bg.border = NA,track.height = 0.3, 
             panel.fun = function(x, y){
               circos.dendrogram(dend = dend,
                                 max_height = max_height)
             })
#加上樣品注釋!
anno_df<-as.data.frame(table(factor(str_replace(rownames(mat2),"[0-9]",""),levels =unique(str_replace(rownames(mat2),"[0-9]","")) )))
anno_df$ytop=Reduce(sum,anno_df$Freq,accumulate = T)
anno_df$ybottom=anno_df$ytop-anno_df$Freq
anno_df$color=RColorBrewer::brewer.pal(8,"Set3")
anno_df$text_loc=(anno_df$ybottom+anno_df$ytop)/2

circos.track(track.index = 1, panel.fun = function(x, y) {
  if(CELL_META$sector.numeric.index == 1) { 
    for (i in 1:(dim(anno_df)[1])) {
      circos.rect(xleft = -2,
                  xright = 0,
                  ybottom = anno_df$ybottom[i],
                  ytop = anno_df$ytop[i],
                  col = anno_df$color[i], border = NA)
      circos.text(x=-1,y=anno_df$text_loc[i],anno_df$Var1[i],cex = 0.6,col = "black",facing = "outside")
    }
    
    
  }
}, bg.border = NA)
lgd <- Legend(at = c(-2,-1, 0, 1, 2), col_fun = col_fun, 
              title_position = "topcenter",title = "Z-score")
draw(lgd, x = unit(0.65, "npc"), y = unit(0.7, "npc"))
樣式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末颓芭,一起剝皮案震驚了整個濱河市顷锰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亡问,老刑警劉巖官紫,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異州藕,居然都是意外死亡束世,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門床玻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毁涉,“玉大人,你說我怎么就攤上這事锈死∑堆撸” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵待牵,是天一觀的道長其屏。 經(jīng)常有香客問我,道長缨该,這世上最難降的妖魔是什么偎行? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮贰拿,結(jié)果婚禮上睦优,老公的妹妹穿的比我還像新娘。我一直安慰自己壮不,他們只是感情好,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布皱碘。 她就那樣靜靜地躺著询一,像睡著了一般。 火紅的嫁衣襯著肌膚如雪癌椿。 梳的紋絲不亂的頭發(fā)上健蕊,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天,我揣著相機與錄音踢俄,去河邊找鬼缩功。 笑死,一個胖子當著我的面吹牛都办,可吹牛的內(nèi)容都是我干的嫡锌。 我是一名探鬼主播虑稼,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼势木!你這毒婦竟也來了蛛倦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤啦桌,失蹤者是張志新(化名)和其女友劉穎溯壶,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甫男,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡且改,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了板驳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片又跛。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖笋庄,靈堂內(nèi)的尸體忽然破棺而出效扫,到底是詐尸還是另有隱情,我是刑警寧澤直砂,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布菌仁,位于F島的核電站,受9級特大地震影響静暂,放射性物質(zhì)發(fā)生泄漏济丘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一洽蛀、第九天 我趴在偏房一處隱蔽的房頂上張望摹迷。 院中可真熱鬧,春花似錦郊供、人聲如沸峡碉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲫寄。三九已至,卻和暖如春疯淫,著一層夾襖步出監(jiān)牢的瞬間地来,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工熙掺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留未斑,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓币绩,卻偏偏與公主長得像蜡秽,于是被迫代替她去往敵國和親府阀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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

  • 作者:嚴濤浙江大學作物遺傳育種在讀研究生(生物信息學方向)偽碼農(nóng)载城,R語言愛好者肌似,愛開源 ggplot2學習筆記之圖...
    wanghaihua888閱讀 2,604評論 0 6
  • A ggplot2 Tutorial for Beautiful Plotting in R 原文見https:/...
    iColors閱讀 2,638評論 0 15
  • R統(tǒng)計和作圖 來自生信寶典 在R中贊揚下努力工作的你,獎勵一份CheatShet 別人的電子書诉瓦,你的電子書川队,都在b...
    天涯清水閱讀 587評論 0 3
  • 定義借助視覺的表達方式,將數(shù)據(jù)用有趣睬澡、淺顯固额、直觀形式去傳達給觀眾的一種手段。生成物是信息圖標煞聪,由信息和圖形組成(I...
    日暮山主人閱讀 1,512評論 0 1
  • 推薦指數(shù): 6.0 書籍主旨關(guān)鍵詞:特權(quán)斗躏、焦點、注意力昔脯、語言聯(lián)想啄糙、情景聯(lián)想 觀點: 1.統(tǒng)計學現(xiàn)在叫數(shù)據(jù)分析,社會...
    Jenaral閱讀 5,705評論 0 5