ggplot y ejes y etiquetas

Intenté construir el siguiente diagrama de muestra (veraquí para un ejemplo de una rueda de color CIELAB). Está casi terminado, pero todavía hay algunos pequeños problemas (vermanifestación): - los números en el eje (los números, no están seguros de cómo se llama en inglés) deben estar directamente en el eje x / y (x = 0 e y = 0). En este momento estoy usando hline y vline para "agregar" el eje. ¿Hay alguna forma de mover todo el eje? - las etiquetas del eje están al lado del eje, pero deben estar al final del eje como en la imagen de muestra. No estoy seguro si hay una solución para eso. Intenté encontrar la solución en los libros de wickham y chang, pero fracasó. No estoy seguro si tal gráfico es posible con ggplot2.

Perdón por los enlaces, como nuevo usuario no puedo publicar imágenes :(

muchas gracias simon!

library(ggplot2)
circleFun <- function(center = c(0,0),diameter = 1, npoints = 100){
  r = diameter / 2
  tt <- seq(0,2*pi,length.out = npoints)
  xx <- center[1] + r * cos(tt)
  yy <- center[2] + r * sin(tt)
  return(data.frame(x = xx, y = yy))
}

# sample data for yellow
colorvals <- data.frame(file = 'Yellow.csv', L = 88.94026, a = -9.8599137, b=88.77139)

# build the circles for the plot
r20 <- circleFun(center = c(0, 0), diameter = 40, npoints = 100)
r40 <- circleFun(center = c(0, 0), diameter = 80, npoints = 100)
r60 <- circleFun(center = c(0, 0), diameter = 120, npoints = 100)
r80 <- circleFun(center = c(0, 0), diameter = 160, npoints = 100)
r100 <- circleFun(center = c(0, 0), diameter = 200, npoints = 100)
r120 <- circleFun(center = c(0, 0), diameter = 240, npoints = 100)
dat <- rbind(r20, r40, r60, r80, r100, r120)

# plot the data
ggplot(data = dat, aes(x, y)) +
  geom_path() +
  geom_hline() +
  geom_vline() +
  theme(legend.position = c(1,0), legend.justification=c(1,0)) +
  xlab("a* (Grün/Rot)") +
  ylab("b* (Gelb/Blau)") +
  labs(colour="L*") +
  geom_point(data = colorvals, aes(x = a, y = b), size=3) +
  geom_text(data = colorvals, aes(x = a, y = b, label = gsub(".csv", "", file)), size = 3, vjust=0,hjust=1.2)

Respuestas a la pregunta(2)

Su respuesta a la pregunta