Thanks Ben,

Here the reproducible example.
It works without notch=TRUE, but provides an error with notch=TURE

Error in `geom_boxplot()`:
! Problem while converting geom to grob.
ℹ Error occurred in the 1st layer.
Caused by error in `ans[ypos] <- rep(yes, length.out = len)[ypos]`:
! replacement has length zero
Run `rlang::last_trace()` to see where the error occurred.
Warning message:
In rep(yes, length.out = len) : 'x' is NULL so the result will be NULL


Data
Farm_ID Jahr    Bio     QI_A
1       2015    1       9.5
2       2018    1       15.7
3       2020    1       21.5
1       2015    1       50.5
2       2018    1       12.9
3       2020    1       11.2
1       2015    1       30.6
2       2018    1       28.7
3       2020    1       29.8
1       2015    1       30.1
2       2018    1       NA
3       2020    1       16.9
1       2015    0       6.5
2       2018    0       7.9
3       2020    0       10.2
1       2015    0       11.2
2       2018    0       18.5
3       2020    0       29.5
1       2015    0       25.1
2       2018    0       16.1
3       2020    0       15.9
1       2015    0       10.1
2       2018    0       8.4
3       2020    0       3.5
1       2015    0       NA
2       2018    0       NA
3       2020    0       3.5


Code
setwd("C:/Users/Sibylle Stöckli/Desktop/")
#.libPaths()
getwd()  

#libraries laden
library("ggplot2")
library("gridExtra")  
library(scales)
library(nlme)
library(arm)
library(blmeco)
library(stats)  
library(dplyr)
library(ggpubr)
library(patchwork)
library(plotrix)
library(tidyverse)
library(dplyr)

#read data
MS = read.delim("Test1.txt", na.strings="NA")
names(MS)

MS$Jahr<-as.numeric(MS$Jahr)
MS$Bio<-as.factor(MS$Bio)
str(MS)

##### boxplot BFF QI

MS1<- MS %>% filter(QI_A!="NA") %>% droplevels()
MS1$Jahr<-as.factor(MS1$Jahr)

MS1s <- MS1 %>%
  group_by(MS1$Jahr, MS1$Bio) %>%
  summarise(
    y0 = quantile(QI_A, 0.05),
    y25 = quantile(QI_A, 0.25),
    y50 = mean(QI_A),
    y75 = quantile(QI_A, 0.75),
    y100 = quantile(QI_A, 0.95))

MS1s
colnames(MS1s)[1]<-"Jahr"
colnames(MS1s)[2]<-"Bio"
MS1s

p1<-ggplot(MS1s, aes(Jahr,  fill = as.factor(Bio))) +
  geom_boxplot(
    aes(ymin = y0, lower = y25, middle = y50, upper = y75, ymax = y100),
    stat = "identity", notch=TRUE
  ) +
  theme(panel.background = element_blank())+
  theme(axis.line = element_line(colour = "black"))+
  theme(axis.text=element_text(size=18))+
  theme(axis.title=element_text(size=20))+
  ylab("Anteil BFF an LN [%]") +xlab("Jahr")+
  scale_color_manual(values=c("red","darkgreen"), labels=c("ÖLN", "BIO"))+
  scale_fill_manual(values=c("red","darkgreen"), labels= c("ÖLN", "BIO"))+
  theme(legend.title = element_blank())+
  theme(legend.text=element_text(size=20))
p1<-p1 + expand_limits(y=c(0, 80))
p1

-----Original Message-----
From: R-help <r-help-boun...@r-project.org> On Behalf Of Ben Bolker
Sent: Friday, August 16, 2024 3:30 PM
To: r-help@r-project.org
Subject: Re: [R] boxplot notch

   I don't see anything obviously wrong here. There may be something subtle, 
but we probably won't be able to help without a reproducible example ...

On 2024-08-16 9:24 a.m., SIBYLLE STÖCKLI via R-help wrote:
> Dear community
> 
>   
> 
> I tried the following code using geom_boxplot() and notch=TRUE. Does 
> anyone know if the command  notch=TRUE  is at the wrong place in my 
> special code construct?
> 
>   
> 
> Without notch=TRUE the code provides the planned ggplot.
> 
>   
> 
> Kind regards
> 
> Sibylle
> 
>   
> 
> Code:
> 
>   
> 
> MS1<- MS %>% filter(QI_A!="NA") %>% droplevels()
> 
> MS1$Jahr<-as.factor(MS1$Jahr)
> 
>   
> 
> MS1s <- MS1 %>%
> 
>    group_by(MS1$Jahr, MS1$Bio) %>%
> 
>    summarise(
> 
>      y0 = quantile(QI_A, 0.05),
> 
>      y25 = quantile(QI_A, 0.25),
> 
>      y50 = mean(QI_A),
> 
>      y75 = quantile(QI_A, 0.75),
> 
>      y100 = quantile(QI_A, 0.95))
> 
>   
> 
> MS1s
> 
> colnames(MS1s)[1]<-"Jahr"
> 
> colnames(MS1s)[2]<-"Bio"
> 
> MS1s
> 
>   
> 
> p1<-ggplot(MS1s, aes(Jahr,  fill = as.factor(Bio))) +
> 
>    geom_boxplot(
> 
>      aes(ymin = y0, lower = y25, middle = y50, upper = y75, ymax = 
> y100),
> 
>      stat = "identity", notch=TRUE
> 
>    ) +
> 
>    theme(panel.background = element_blank())+
> 
>    theme(axis.line = element_line(colour = "black"))+
> 
>    theme(axis.text=element_text(size=18))+
> 
>    theme(axis.title=element_text(size=20))+
> 
>    ylab("Anteil BFF an LN [%]") +xlab("Jahr")+
> 
>    scale_color_manual(values=c("red","darkgreen"), labels=c(" LN", 
> "BIO"))+
> 
>    scale_fill_manual(values=c("red","darkgreen"), labels= c(" LN", 
> "BIO"))+
> 
>    theme(legend.title = element_blank())+
> 
>    theme(legend.text=element_text(size=20))
> 
> p1<-p1 + expand_limits(y=c(0, 80))
> 
> p1
> 
> 
>       [[alternative HTML version deleted]]
> 
> 
> ______________________________________________
> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

--
Dr. Benjamin Bolker
Professor, Mathematics & Statistics and Biology, McMaster University Director, 
School of Computational Science and Engineering  > E-mail is sent at my 
convenience; I don't expect replies outside of working hours.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to