Как дрожать текст, чтобы избежать наложения в диаграмме рассеяния ggplot2?
Я хотел бы создать чистую версию диаграммы разброса текстовых меток в ggplot2. Цель состоит в том, чтобы визуально представить растущие значения, связанные примерно с 25 предметами. Я уже использую & quot; position_jitter, & quot; но мне интересно, могу ли я сделать лучше.
Вот некоторые ложные данные:
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)
А вот код, который генерирует график:
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
Для всего этого текста достаточно места в графике разумного размера - при условии, что текст может свободно перемещаться настолько, насколько это необходимо, по горизонтали! Я не хочу дрожать вертикально, потому что дело в том, чтобы показать значение y, связанное с каждой текстовой меткой.
График выходит немного по-разному каждый раз, когда вы запускаете команду ggplot - и иногда результаты дрожания лучше, чем в других случаях. Но я не нашел способа систематически предотвращать перекрытие ярлыков.
Я был бы признателен за любые предложения о том, как очистить горизонтальное расположение текста без необходимости перемещать отдельные элементы вручную. Я также был бы рад услышать другие советы о том, как улучшить этот тип визуального представления.