Add text to ggplot

ggplot2, label, r

Solution

Consider using `annotate()` to place whatever text where you want at a given location on the plot. Factor variables, as in the clarity factor on the x-axis, have a number for each level, so you can use that number to locate the text. I assume date variables have the same 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

For efficiency, you can combine the annotations, such as this:

ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() +
  annotate("text", x = c(2,4,6,8), y=13000, label = c("two", "ship", "six", "boat"))

Problem

(updated) I have ggplot like this, but then the x axis Date scaled: ``` g1 <- ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar() ``` Above two bars (lets say `VS2` and `IF`, but in my graph it is a date) I want to put a text label above the bars at height 13.000. I tried a lot of things, but this is what came closest: This is what I tried in my graph with the Date axis `g1 + geom_text(aes(as.Date("2014-10-05"), 13000), label="boat")` but this adds only one to the graph and as soon as I try to extend it, for example with ``` g1 + geom_text(aes(c(as.Date("2014-10-05"),as.Date("2014-10-20")) , 13000), label=c("boat", "train")) ``` then I get the error: Error: Aesthetics must either be length one, or the same length as the dataProblems:c(as.Date("2014-10-05"), as.Date("2014-10-20")) I also tried to read the text and labels from a dataframe (`oefen`), where I used the same names as the original plot ``` g1 + geom_text(data=oefen, aes(x=newdat, y=Number, label=oefen$labs, fill=1)) ``` I get the error Error: Continuous value supplied to discrete scale I tried many other solutions, but cannot find the answer. What am I missing?

Original source