Luigi Marongiu
2024-Mar-05 12:16 UTC
[R] How to invert axis within defined range with ggplot2 scale_y_reverse?
Hello, I am drawing some data with ggplot2 and would like to reverse the order of the y axis and set a custom range for it. I can do the former but when I add the key `limits` to `scale_y_reverse` I get an error as shows below and, worse, no data shown in the plot. How can I properly set a reverse y scale with a defined range in ggplot2? Thank you ``` A <- rep(c(0, 3, 6, 12, 24), 3) B <- c(rep(0,5), rep(1,5), rep(2,5)) V <- c(27.5, 27.01, 27.75, 27.98, 27.4, 25.69, 26.17, 27.78, 26.08, 24.97, 23.18, 21.78, 22.49, 21.85, 22.2) df <- data.frame(Conc = A, Time = B, Value = V) df$Conc = as.factor(df$Conc) df$Time = as.factor(df$Time) library(ggplot2) ggplot(df, aes(x=Time, y=Value, colour=Conc, group=Conc)) + geom_line() + scale_y_reverse(limits = c(20,30)) + geom_point(size=6) + scale_colour_manual(values = COLS)> Warning messages:1: Removed 15 rows containing missing values (`geom_line()`). 2: Removed 15 rows containing missing values (`geom_point()`). ```
Duncan Murdoch
2024-Mar-05 13:43 UTC
[R] How to invert axis within defined range with ggplot2 scale_y_reverse?
On 05/03/2024 7:16 a.m., Luigi Marongiu wrote:> A <- rep(c(0, 3, 6, 12, 24), 3) > B <- c(rep(0,5), rep(1,5), rep(2,5)) > V <- c(27.5, 27.01, 27.75, 27.98, 27.4, 25.69, > 26.17, 27.78, 26.08, > 24.97, 23.18, 21.78, 22.49, 21.85, 22.2) > df <- data.frame(Conc = A, Time = B, Value = V) > df$Conc = as.factor(df$Conc) > df$Time = as.factor(df$Time) > library(ggplot2) > > ggplot(df, aes(x=Time, y=Value, colour=Conc, group=Conc)) + > geom_line() + > scale_y_reverse(limits = c(20,30)) + > geom_point(size=6) + > scale_colour_manual(values = COLS)The limits should be `c(30,20)`. Duncan Murdoch