Como jitter texto para evitar a sobreposição em um gráfico de dispersão ggplot2?

Gostaria de criar uma versão limpa de um gráfico de dispersão de rótulos de texto em ggplot2. O objetivo é representar visualmente os valores crescentes associados a cerca de 25 itens. Eu já estou usando o "position_jitter", mas me pergunto se posso fazer melhor.

Aqui estão alguns dados simulados:

title <- rep("A Really Rather Long Text Label", 25)
value <- runif(25, 1,10)
spacing <- seq(1:25)
df <- data.frame(title, value, spacing, stringsAsFactors = FALSE)

E aqui está o código que gera o gráfico:

library(ggplot2)
myplot <- ggplot(data=df, aes(x=spacing, y=value, label = title)) +
geom_text(aes(colour = value),
    size = 2.5, fontface = "bold",
    vjust = 0,
    position = position_jitter(width=5, height=0)) +
theme_bw() +
scale_x_continuous(limits = c(-5, 30))+
scale_colour_gradient(low = "#6BAED6", high = "#08306B") +
theme(axis.title.x = element_blank(),
      axis.ticks = element_blank(),
      axis.text.x = element_blank(),
      legend.position = "none")
myplot

Há muito espaço para todo este texto em um gráfico de tamanho razoável - desde que o texto esteja livre para mudar tanto quanto precisar horizontalmente! Eu não quero jitter verticalmente, porque o ponto é mostrar o valor de y associado a cada rótulo de texto.

O gráfico aparece de forma ligeiramente diferente toda vez que você executa o comando ggplot - e às vezes os resultados de jitter são melhores que outras vezes. Mas não encontrei uma maneira de impedir sistematicamente que os rótulos se sobreponham.

Ficaria muito grato por quaisquer sugestões sobre como limpar o posicionamento horizontal do texto sem ter que mover itens individuais manualmente. Também ficaria feliz em ouvir outras dicas sobre como melhorar esse tipo de representação visual.

questionAnswers(1)

yourAnswerToTheQuestion