2015-09-23 226 views
0

我想在ggplot的繪圖上繪製一系列矩形,描繪蛋白質的區域。基本數據是這樣的:用gg多邊形繪製矩形R

x y  ids 
6 9851 IgLike 
10216 12022 PEVK 
12041 14012 IgLike 
14019 32144 Fibronectin 
32178 32432 ProteinKinase 
32496 34344 IgLike 

列一到兩列表示跨越x軸我想打成3列我試圖跟着導遊在http://docs.ggplot2.org/current/geom_polygon.html由哈德利地區,但它是混亂一點點。我將數據轉換爲「職位」;

9851 .75 IgLike 
6 0.75 IgLike 
6 .9 IgLike 
9851 .9 IgLike 

12022 .75 PEVK 
10216 0.75 PEVK 
10216 .9 PEVK 
12022 .9 PEVK 

14012 .75 IgLike 
12041 0.75 IgLike 
12041 .9 IgLike 
14012 .9 IgLike 

32144 .75 Fibronectin 
14019 0.75 Fibronectin 
14019 .9 Fibronectin 
32144 .9 Fibronectin 

32432 .75 ProteinKinase 
32178 0.75 ProteinKinase 
32178 .9 ProteinKinase 
32432 .9 ProteinKinase 

34344 .75 IgLike 
32496 0.75 IgLike 
32496 .9 IgLike 
34344 .9 IgLike 

這是幾乎存在,但一些形狀是重疊的,而不是離散的形狀,因爲他們應該是。 0.75和.9 y軸的值是任意的,我只是想要一些厚度,從而其容易看到的不僅僅是一個線條更加

然後

ggplot(positions, aes(x=x, y=y)) + geom_polygon(aes(fill=ids)) 
+1

是三角形故意? – Heroka

+0

nope,我想他們作爲矩形。例如,第一個正方形從6到9851 x軸,用某種y值使其變厚。 x1,y1,x2,y2值的順序是什麼? – cianius

+1

你嘗試過'geom_rect(...)'嗎? – jlhoward

回答

1

由於只想矩形,geom_polygon可能是一個小小的矯枉過正。當我使用自己的原始數據

df1 <- read.table(text=" 
        x y  ids 
6 9851 IgLike 
10216 12022 PEVK 
12041 14012 IgLike 
14019 32144 Fibronectin 
32178 32432 ProteinKinase 
32496 34344 IgLike",header=T) 

我可以繪製它,你已經在同一行給XMIN(x)和XMAX(Y)的矩形; ymin和ymax變量是任意的。

p1 <- ggplot(df1) + 
    geom_rect(aes(xmin=x,xmax=y,ymin=1,ymax=2,fill=ids)) 
p1 

enter image description here

+0

是的,我不知道geom_rect存在...謝謝! – cianius