0

I am producing this graph using this code:

enter image description here

ggplot(  dat_long, aes( y = weight, x = time_cont ,color = group, linetype = group,  group = group, shape = group )) +
  stat_summary(fun = "mean", geom = "point", size = 6) +
  stat_summary(fun = "mean", geom = "line", size = 2) +
  stat_summary(fun.data = "mean_se", geom = "errorbar", size = 1, width = .3) +
  scale_color_manual(values = c("black", "grey50")) +
  labs(x = "Time-points",
       y = " Y",
       title = " ",
       subtitle = "") +  
  scale_x_continuous (   labels = c('Baseline', '1-month', '2-month', '3-month', '4-month')) +
  theme_minimal(    base_size = 16) +
  theme(panel.grid.minor = element_blank(),
        panel.grid.major = element_blank()) +
  theme(axis.line = element_line(color="black", size = 0.5)) +
  theme(text=element_text(family="Comic Sans MS"))

I wish to:

  1. Add a zero in Y-axis;
  2. And add a y-axis break (hope it is the correct term), in order to maintain the same aspect as the default output of the previous code;
  3. Is it possible to make all the previous automatically? Suppose that I have another outcome and I don't wish to state the limits of y-axis manually.

enter image description here Is it possible?

df

dat_long <- structure(list(weight = c(124.5, 119, 114.5, 127.5, 117, 115, 130, 117.5, 135.5, 145.5, 128, 138, 125.5, 121.5, 119, 127.5, 106.5, 115, 109.5, 109, 93.5, 131.5, 124, 122.5, 119, 109, 110, 134.5, 124, NA, 118, 121, 116, 117.5, 108.5, 120.5, 122.5, 131.5, 118, 107, 84.5, 99, 112, 115, 108.5, 112.5, 100, 93.5, 132, 128.5, 134.5, 148.5, 137.5, 122, 126, 126, 128, 129, 118, 119, 131.5, 125.5, 114.5, 136, NA, 126, 121.5, 112, 113.5, 130.5, 132.5, 137.5, 120, 116, 114, 91.5, 106, NA, 135, 112, 124.5, 122, 114, 113, 117, 117.5, 125.5, 127, 100, 104.5, 116, 104.5, 102, 109, 117, 112.5, 105, 84, 101, 122.5, 122.5, 119, 131, 122, 132.5, 153.5, 120, 112.5, 103.5, 107.5, 106, 152.5, 125.5, 120, 112, 133, 127), group = c("CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION", "CONTROL", "CONTROL", "CONTROL", "INTERVENTION", "INTERVENTION", "INTERVENTION"), time_cont = c(0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4, 0, 3, 4)), row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L, 57L, 58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 76L, 77L, 78L, 79L, 80L, 81L, 82L, 83L, 84L, 85L, 86L, 87L, 88L, 89L, 90L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L, 100L, 101L, 102L, 106L, 107L, 108L, 109L, 110L, 111L, 112L, 113L, 114L, 115L, 116L, 117L, 118L, 119L, 120L), class = "data.frame")

jtjtjtjt
  • 105
  • 6
  • See this package: https://cran.r-project.org/web/packages/ggbreak/vignettes/ggbreak.html – zx8754 Feb 07 '23 at 14:40
  • Why would you want to add a zero with an axis break if it won't change how your data is drawn at all? It seems to kind of defeat the point of the scale. Rather than 0, you could put any number less than 100 there and it wouldn't seem to change anything. I'm not sure I understand why you would want to do this. – MrFlick Feb 07 '23 at 14:44

0 Answers0