У меня проблемы с обрезкой границ объекта с полярными координатами. Я пытаюсь построить средние углы с помощью ограничивающего прямоугольника, показывающего стандартное отклонение всех измеренных углов. Однако из-за характера круговых координат у меня возникают проблемы, когда sd находится за пределами полярных координат, и у меня возникают проблемы с его появлением. Я прочитал этот похожий вопрос , но по разным причинам мне нужны эти данные в полярной системе координат, поэтому мне не удалось применить решение geom_arc_bar
из этого вопроса к моей проблеме.
Вот подмножество данных:
test <- structure(
list(group = structure(1:4, .Label = c("1", "2", "3", "4"),class = "factor"),
mang = c(100.346364791691, 61.6459563812475, -93.4372656495579, -150.308914571739),
mdisp = c(22.1760257078993, 16.1971728831951, 13.7224045052927, 16.3229969619169),
sd = c(88.7601477929364, 115.305326107927, 89.1303441207914, 75.4004747324955)),
row.names = c(NA, -4L),
class = c("tbl_df", "tbl", "data.frame"),
.Names = c("group", "mang", "mdisp", "sd"))
Код:
library(tidyverse)
ggplot(test)+
geom_rect(aes(xmin = mang - sd, xmax = mang + sd, ymin = 0,ymax = mdisp, fill = group))+
geom_segment(aes(x = mang, y = 0, xend = mang, yend = mdisp))+
scale_x_continuous(breaks = c(-90, 0, 90, 180, 270, 360), limits = c(-180, 180))+
coord_polar(start = 2*pi, direction = -1)+
facet_grid(~group)+
ggtitle("polar plots with sd")
Что дает этот график:
Если я закомментирую строку, устанавливающую шкалу x #scale_x_continuous(breaks=c(-90,0,90, 180, 270, 360),limits=c(-180, 180))
, эти прямоугольники появятся там, где я хочу, как на этом графике, но шкалы неверны:
Как заставить шкалы и ограничивающие прямоугольники появляться на одном графике?