Построение формы под размер окна
контекст
Этот вопрос является частью проекта по построению генетических карт в 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 имели одинаковый масштаб перед экспортом графика, но это не совсем эффективно и станет очень сложно, если у меня несколько хромосом на одном графике.
Я был бы рад ответить на комментарии, если это необходимо, и надеюсь, что мой вопрос достаточно ясен!
1 ответ
coord_fixed
убедитесь, что x
а также y
всегда масштабируются 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()