Добавить текст в ggplot
(обновлено)
У меня есть ggplot, как это, но тогда ось x Date масштабируется:
g1 <- ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()
Выше двух баров (давайте скажем, VS2 и IF, но на моем графике это дата) Я хочу поместить текстовую надпись над столбцами в higt 13.000.
Я пробовал много вещей, но это то, что было ближе всего:
Это то, что я пытался на моем графике с осью Date g1 + geom_text (aes (as.Date( "2014-10-05" ), 13000), label = "boat" )
но это добавляет только один к графику и как только я пытаюсь его расширить, например, с помощью
g1 + geom_text(aes(c(as.Date("2014-10-05"),as.Date("2014-10-20")) , 13000), label=c("boat", "train"))
то я получаю ошибку:
Ошибка: Эстетика должна быть либо одной, либо той же длины, что и dataProblems: c (as.Date( "2014-10-05" ), as.Date( "2014-10-20" ))
Я также попытался прочитать текст и метки из dataframe (oefen), где я использовал те же имена, что и исходный сюжет
g1 + geom_text(data=oefen, aes(x=newdat, y=Number, label=oefen$labs, fill=1))
Я получаю сообщение об ошибке
Ошибка: непрерывное значение, заданное для дискретного масштаба
Я пробовал много других решений, но не могу найти ответ. Что мне не хватает?
Ответы
Ответ 1
Рассмотрите возможность использования annotate()
для размещения любого текста, который вы хотите, в определенном месте на графике. Факторные переменные, как и коэффициент ясности по оси x, имеют число для каждого уровня, поэтому вы можете использовать этот номер для поиска текста. Я предполагаю, что переменные даты имеют одинаковое использование.:
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() +
annotate("text", x=8, y=13000, label= "boat") +
annotate("text", x = 4, y=13000, label = "ship")
![enter image description here]()
ИЗМЕНИТЬ после КОММЕНТАРИИ
Для эффективности вы можете комбинировать аннотации, например:
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() +
annotate("text", x = c(2,4,6,8), y=13000, label = c("two", "ship", "six", "boat"))