(mis à jour) J'ai ggplot comme ça, mais ensuite l'axe des x Date à l'échelle:
g1 <- ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()
Au-dessus de deux barres (disons SV2 et SI, mais dans mon graphique, il s'agit d'une date), je souhaite mettre une étiquette de texte au-dessus des barres à partir de 13.000.
J'ai essayé beaucoup de choses, mais voici ce que j'ai le plus approché: C'est ce que j'ai essayé dans mon graphique avec Date axis g1 + geom_text (aes (as.Date ("2014-10-05"), 13000), label = "bateau")
mais cela n’ajoute qu’un seul au graphe et dès que j’essaie de l’étendre, par exemple avec
g1 + geom_text(aes(c(as.Date("2014-10-05"),as.Date("2014-10-20")) , 13000), label=c("boat", "train"))
alors j'obtiens l'erreur:
Erreur: L'esthétique doit être soit de longueur un, soit de la même longueur que dataProblems: c (as.Date ("2014-10-05"), as.Date ("2014-10-20"))
J'ai aussi essayé de lire le texte et les étiquettes d'un dataframe (oefen), où j'ai utilisé les mêmes noms que l'intrigue d'origine.
g1 + geom_text(data=oefen, aes(x=newdat, y=Number, label=oefen$labs, fill=1))
Je reçois l'erreur
Erreur: valeur continue fournie à une échelle discrète
J'ai essayé beaucoup d'autres solutions, mais je ne trouve pas la réponse. Qu'est-ce que je rate?
Pensez à utiliser annotate()
pour placer le texte où vous le souhaitez à un emplacement donné du tracé. Les variables de facteur, comme dans le facteur de clarté sur l'axe des x, ont un nombre pour chaque niveau. Vous pouvez donc utiliser ce nombre pour localiser le texte. Je suppose que les variables de date ont le même usage.
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() +
annotate("text", x=8, y=13000, label= "boat") +
annotate("text", x = 4, y=13000, label = "ship")
EDIT after COMMENT
Pour plus d'efficacité, vous pouvez combiner les annotations, telles que:
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() +
annotate("text", x = c(2,4,6,8), y=13000, label = c("two", "ship", "six", "boat"))