Как убрать внешнюю линию основной внешней линии сетки панели с радиолокационного участка? - PullRequest
1 голос
/ 02 ноября 2019

Я работал с радиолокационным графиком, используя 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 
...