How do I add data labels to points using ggplot?
I have a stacked data frame called "stacked":
> head(stacked)
time value variable
1 100 152.2211 gg
2 110 146.3304 gg
3 115 143.5831 gg
4 120 140.9527 gg
5 125 138.4297 gg
6 130 136.0057 gg
> tail(stacked)
time value variable
755 1975 56.02922 t
756 1980 56.14049 t
757 1985 56.25148 t
758 1990 56.36219 t
759 1995 56.47262 t
760 2000 56.58277 t
Now lets say I want to show data labels displaying the "value" field where the time field is equal to 100. Here is what I have:
g<- ggplot(stacked, aes( x = time, y=value, colour=variable, group= variable) ) + geom_line() +
geom_text(data = stacked[stacked$time == 100,], aes(label = stacked$value))
print(g)
I am getting the error:
Error: Aesthetics must either be length one, or the same length as the dataProblems:time, value, variable, variable
Any ideas?
Thank you.
The problem is that in your
aes(...)
call forgeom_text
you are settinglabel = stacked$value
. You've already specified the data subset (data = stacked[stacked$time == 100,]
) so all you need to do here is setaes(label = value)
so it takes thevalue
column.I don't have your test data but take a look at this example where I'm adding labels only to the data points at speeds that are a multiple of 10.