GGplot add Data label to points

13,476

The problem is that in your aes(...) call for geom_text you are setting label = stacked$value. You've already specified the data subset (data = stacked[stacked$time == 100,]) so all you need to do here is set aes(label = value) so it takes the value 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.

ggplot(cars, aes(x = speed, y = dist)) + 
    geom_point() + 
    geom_text(data = subset(cars, speed %% 5 == 0), aes(label = dist))
Share:
13,476
user3022875
Author by

user3022875

Updated on June 09, 2022

Comments

  • user3022875
    user3022875 almost 2 years

    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.