2

语境

这个问题是在 R 中绘制遗传图谱的项目的一部分。常见的表示是水平性状的“比例”,以两个半圆为界。遗传图示例 遗传图大致是一个位置序列。

目标

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

实际代码

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 查看窗口的大小进行反应形状缩放,以使形状始终看起来像一个圆圈并与我的上层“梯子”保持链接?

尝试

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

4

1 回答 1

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

在此处输入图像描述

于 2017-12-14T15:35:56.953 回答