绘制形状调整到窗口大小

时间:2017-12-14 14:35:48

标签: r ggplot2 ggforce

上下文

这个问题是在R中绘制遗传图谱的项目的一部分。 共同表示是由两个半圆界定的水平特征的“比例”。 genetic map example 遗传图大致是一系列位置。

目标

我正在尝试制作一个半圆形,与“刻度梯”相匹配,并且可调高,这样它总是看起来像一个圆形而不像某种椭圆形。

实际代码

library(ggforce)  
df <- data.frame(position=rnorm(n=15)*10)  
ggplot(aes(xmin=-2.5,ymin=position-0.1,xmax=2.5,ymax=position+0.1),data=df)+  
geom_rect() +  
geom_arc_bar(aes(x0 = 0, y0 = max(position), r0 = 0, r = 2.5, start =-pi/2,end = pi/2), color = "grey20")+  
geom_arc_bar(aes(x0 = 0, y0 = min(position), r0 = 0, r = 2.5, start = pi/2,end = 3*pi/2), color = "grey20")  

enter image description here

问题

所以我的问题是:如何使用Rplot查看窗口的大小进行反应性缩放,以使形状始终看起来像一个圆圈并保持链接到我的上层“梯子”?

尝试

我可以手动调整绘图的大小,使x.axis和y.axis在导出图形之前具有相同的比例但是这不是很有效,如果我在同一个图上有多个染色体,那将变得非常困难。
如果需要,我很乐意回答评论,并希望我的问题足够清楚!

1 个答案:

答案 0 :(得分:2)

coord_fixed将确保xy始终按比例缩放为1:1,即使重新缩放图表也是如此。

ggplot(aes(xmin=-2.5,ymin=position-0.1,xmax=2.5,ymax=position+0.1),data=df)+  
  geom_rect() +  
  geom_arc_bar(aes(x0 = 0, y0 = max(position), r0 = 0, r = 2.5, start =-pi/2,end = pi/2), color = "grey20")+  
  geom_arc_bar(aes(x0 = 0, y0 = min(position), r0 = 0, r = 2.5, start = pi/2,end = 3*pi/2), color = "grey20") +
  coord_fixed()

enter image description here