這個套圈圖不難畫

文章首發於公衆號 生信窗 。優化

 

  從別的公衆號看到一個這樣的圖;由於只有圖片,有人問怎麼畫的。blog

 

 

#此代碼由於有不少數據微調的地方,在你電腦上不同顯示正常,跟每一個人的電腦設備有關係,
#代碼能夠直接用,須要調一些參數,這段代碼有不少能夠優化的地方。
rm(list=ls())
library(grid)

if(T){
  grid.newpage()
  
  vp1<-viewport(unit(0.5,"npc"),unit(0.5,"npc"),0.9,0.9,name = "vp1")
  vp2<-viewport(unit(0.5,"npc"),unit(0.5,"npc"),0.7,0.7,name = "vp2")
  vp3<-viewport(unit(0.6,"npc"),unit(0.11,"npc"),0.5,0.5,name = "vp3")
  vp4<-viewport(unit(0.65,"npc"),unit(0.30,"npc"),0.3,0.3,name = "vp4")
  vp5<-viewport(unit(0.5,"npc"),unit(0.5,"npc"),0.1,0.1,name = "vp5")
  vp6<-viewport(unit(0.5,"npc"),unit(0.5,"npc"),0.1,0.1,name = "vp6")
  
  pushViewport(vpStack(vp1,vp2,vp3,vp4,vp5,vp6))
  #current.vpTree()
}
upViewport(n = 5)#vp1
grid.circle(0.5,0.5,r=0.5,gp = gpar(fill="#D9D9D9",col="#D9D9D9"))

downViewport(name = "vp2")#vp2
grid.circle(0.6,0.11,r=0.25,gp = gpar(fill="#FFFF33",col="#FFFF33"))

downViewport(name = "vp3")#vp3
grid.circle(0.65,0.3,r=0.2,gp = gpar(fill="#08519C",col="#08519C"))

downViewport(name = "vp4")#vp4
grid.circle(0.6,0.28,r=0.4,gp = gpar(fill="#FCCDE5",col="#FCCDE5"))

downViewport(name = "vp5")#vp5
grid.circle(0.5,0.5,r=1.5,gp = gpar(fill="#FC8D62",col="#FB8072"))

downViewport(name = "vp6")#vp6
grid.circle(0.5,0.5,r=5,gp = gpar(fill="#000000",col="#000000"))

  

 

 

  最終圖形仍是能基本完成。因此若是僅僅爲了畫一個圖可能不是很難,可是代碼寫的比較死,一樣的代碼你可能畫出來不是這樣的,寫一個能夠擴展的代碼實際上有不少要考慮的東西。圖片

相關文章
相關標籤/搜索