2015-09-23 173 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