ggplot2 - annotate outside of plot

前端 未结 3 1782
青春惊慌失措
青春惊慌失措 2020-11-22 06:32

I would like to associate sample size values with points on a plot. I can use geom_text to position the numbers near the points, but this is messy. It would b

3条回答
  •  感动是毒
    2020-11-22 07:09

    This is now straightforward with ggplot2 3.0.0, since now clipping can be disabled in plots by using the clip = 'off' argument in coordinate functions such as coord_cartesian(clip = 'off') or coord_fixed(clip = 'off'). Here's an example below.

        # Generate data
        df <- data.frame(y=c("cat1","cat2","cat3"),
                         x=c(12,10,14),
                         n=c(5,15,20))
    
        # Create the plot
        ggplot(df,aes(x=x,y=y,label=n)) +
          geom_point()+
          geom_text(x = 14.25, # Set the position of the text to always be at '14.25'
                    hjust = 0,
                    size = 8) +
          coord_cartesian(xlim = c(10, 14), # This focuses the x-axis on the range of interest
                          clip = 'off') +   # This keeps the labels from disappearing
          theme(plot.margin = unit(c(1,3,1,1), "lines")) # This widens the right margin
    

提交回复
热议问题