Я работал с радиолокационным графиком, используя ggplot. Я хотел бы удалить самую внешнюю линию сетки панели (т.е. часть темы).
Так как я хочу, чтобы все точки соединялись прямой линией. Я использовал fuction следующим образом:
coord_radar <- function (theta = "x", start = 0, direction = 1) {
theta <- match.arg(theta, c("x", "y"))
r <- if (theta == "x") "y" else "x"
ggproto("CordRadar", CoordPolar, theta = theta, r = r, start = start,
direction = sign(direction),
is_linear = function(coord) TRUE)
}
Я нашел сообщение в StackOverflow. Чтобы избежать самой внешней строки, я должен использовать
geom_hline(yintercept = seq(0, 10, by = 1), colour = "darkgray", size = 0.35,show.legend = TRUE).
Однако я не могу использовать coord_radar
вместе с geom_hline
. Мне нужны предложения по моей проблеме: я хочу соединить точки прямой линией, а не самой внешней линией сетки основных панелей на моем графике. Спасибо
#data
a <- c(1,2,3,4,5,6,7,8)
b <- c(6,7,8,2,3,4,9,10)
c <- data.frame(a,b)
#function for connecting points with strighted line
coord_radar <- function (theta = "x", start = 0, direction = 1) {
theta <- match.arg(theta, c("x", "y"))
r <- if (theta == "x") "y" else "x"
ggproto("CordRadar", CoordPolar, theta = theta, r = r, start = start,
direction = sign(direction),
is_linear = function(coord) TRUE)
}
#ggplot
p <- ggplot(data = c ,aes(x = a, y = b))
#p <- p + geom_hline(yintercept = seq(0, max(cal_p$up), by = 1), colour = "darkgray", size = 0.35,show.legend = TRUE)
p <- p + scale_y_continuous(breaks = seq(0, 10,by=1))
p <- p + coord_radar()
p <- p + theme_bw()
p <- p + theme(panel.border = element_blank())
p <- p + theme(axis.title.x = element_blank())
p <- p + theme(axis.title.y = element_blank())
p <- p + theme(axis.text.y = element_blank())
p <- p + theme(axis.ticks.y = element_blank())
p <- p + geom_polygon(fill = NA, colour = "purple")
p <- p + geom_point()
p <- p + annotate("text", x = 0.5, y = 0:10, label = c("0","1","2","3","4","5","6","7","8","9","10"), color="darkgray")
p