Use geom_polygon() instead of geom_line() . You can set an empty fill for the polygon using geom_polygon(..., fill=NA) .
Try the following:
library(ggplot2) ggplot(data = test_vis, aes(x = factor(hour_timetable), y = mean_delayed_pass, group = 1)) + ylim(0, NA) + geom_point(color = 'purple', stat = 'identity') + geom_polygon(color = 'purple', fill=NA) + coord_polar(start = - pi * 1/24)

To set a zero point at the top of the graph, use offset = - pi / 24 .
Andrie
source share