Usando geom_path de la biblioteca ggplot

Tengo 12 variables,M1, M2, ..., M12, para lo cual computo una cierta estadística.x.

 df = data.frame(model = factor(paste("M", 1:28, sep = ""), levels=paste("M", 1:28, sep = "")), x = runif(28, 1, 1.05))

 levels = seq(0.8, 1.2, 0.05)

Me gustaría trazar estos datos de la siguiente manera:

Cada círculo (contorno) representa el nivel de esa estadística"X". Las tres líneas azules simplemente representan tres escenarios diferentes.

El marco de datos incluido en este ejemplo representa un escenario. La línea azul simplemente uniría los valores de todos los modelos.M1 aM28 Para ese escenario específico.

Intenté lo siguiente:

 ggplot(data=df, aes(x=model, y=x, group=1)) + 
   geom_line() + coord_polar() + 
   scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
   theme(axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x = element_blank(), axis.title.y = element_blank())

Sin embargo, me sale una ruta desconectada (entre M28 y M1)

Luego, repliqué la primera fila y la coloqué en la parte inferior del marco de datos (ver más abajo), y luego uségeom_path() en lugar degeom_line(), pero no obtuve el resultado que estaba buscando:

 ## Replicating the first row (model1) and placing it at end of dataframe
 df = rbind(df, df[1,])

 ## using geom_path()

 ggplot(data=df, aes(x=model, y=lg, group=1)) + 
   geom_path() + coord_polar() + 
   scale_y_continuous(limits=range(levels), breaks=levels, labels=levels) +
   theme(axis.text.y = element_blank(), axis.ticks = element_blank(), axis.title.x =  element_blank(), axis.title.y = element_blank())

¿Podría alguien ayudarme a lograr el resultado que estoy buscando? Cualquier ayuda sería apreciada. ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta