绘图形状调整为 window 的大小

plotting shape adjusting to size of window

上下文

这个问题是在 R 中绘制遗传图谱项目的一部分。 常见的表示是一个 "scale" 的水平特征,由两个半圆圈包围。 genetic map example 遗传图谱大致是一个位置序列。

目标

我正在尝试制作一个与 "ladders of the scale" 相匹配的半圆,高度可调,这样它看起来总是像一个圆,而不是某种椭圆形。

实际代码

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")  

问题

所以我的问题是:如何根据 Rplot 查看 window 的大小制作反应形状缩放,以便形状始终看起来像一个圆圈并保持 link 在我的上方 "ladder"?

尝试

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

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()