(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?
df <- data.frame(x = as.Date(c("2014-10-04", "2014-10-08", "2014-11-06") ), y = sample(1:3, 3), label = sample(letters, 3)); ggplot(df, aes(x, y, label = label)) + geom_bar(stat = "identity") + geom_text(y = 4) + ylim(c(0, 4))
? – lukeA