Set the height of box in the boxplot

Viewed 61

I was wondering how we extend the height of boxplot. We would be delighted to have your help.

enter image description here

Here are the sample data and R code that we use

enter image description here

miRNA_accuracy <- c(0.9347845,0.9602660,0.7767556, 0.9347413, 0.9635052, 0.7799516, 0.9348709,
                        0.9625551, 0.7846592 ,0.9353459 ,0.9605684, 0.7765397, 0.9363825,
                        0.9617345 ,0.7759350 ,0.9340935 ,0.9618640, 0.7840114, 0.9331433, 0.9623391)
miRNA_class <- c("DT" ,"RF" ,"NB", "DT" ,"RF" ,"NB" ,"DT", "RF" ,"NB", "DT",
                     "RF" ,"NB", "DT" ,"RF", "NB" ,"DT" ,"RF" ,"NB" ,"DT" ,"RF")
    
miRNA <- data.frame(Accuracy = miRNA_accuracy,class = miRNA_class)
    
      ggplot(miRNA, aes(fill=class, y=Accuracy, x=class)) +
      geom_boxplot()+
      ylab ("Accuracy")  +
      xlab ("")+
      scale_fill_manual(' ', values=c('Orange','Pink', "Blue")) +
      ylim(0.75,0.98)+
      theme(axis.line = element_line(colour = "Grey50"),
            panel.grid.major = element_line(colour = "White"),
            panel.grid.minor = element_line(colour = "White"),
            panel.border = element_blank(),
            panel.background = element_blank())






 
2 Answers

I don't think you can do anything here, each group IQR (which is what sets the width or height of the box) is really small. I would suggest plotting each of them on their own but I don't think that would really help that much.

Remove your y limits and add a facet wrap. This way, you can show the range in values reasonably.

ggplot(miRNA, aes(fill = class, y = Accuracy, x = class, facets = class)) +
  geom_boxplot()+
  ylab ("Accuracy")  +
  xlab ("")+
  scale_fill_manual(' ', values = c('Orange','Pink', "Blue")) +
  # ylim(0.75,0.98)+
  theme(axis.line = element_line(colour = "Grey50"),
        panel.grid.major = element_line(colour = "White"),
        panel.grid.minor = element_line(colour = "White"),
        panel.border = element_blank(),
        panel.background = element_blank()) +
  facet_wrap(~class, nrow = 1, ncol = 3, scales = "free") # <-- I'm new!

enter image description here

Related