ggplot2 plot without axes, legends, etc

后端 未结 8 1292
执念已碎
执念已碎 2020-11-28 18:23

I want to use bioconductor\'s hexbin (which I can do) to generate a plot that fills the entire (png) display region - no axes, no labels, no background, no nuthin\'.

相关标签:
8条回答
  • 2020-11-28 18:44

    I didn't find this solution here. It removes all of it using the cowplot package:

    library(cowplot)
    
    p + theme_nothing() +
    theme(legend.position="none") +
    scale_x_continuous(expand=c(0,0)) +
    scale_y_continuous(expand=c(0,0)) +
    labs(x = NULL, y = NULL)
    

    Just noticed that the same thing can be accomplished using theme.void() like this:

    p + theme_void() +
    theme(legend.position="none") +
    scale_x_continuous(expand=c(0,0)) +
    scale_y_continuous(expand=c(0,0)) +
    labs(x = NULL, y = NULL)
    
    0 讨论(0)
  • 2020-11-28 18:45

    As per my comment in Chase's answer, you can remove a lot of this stuff using element_blank:

    dat <- data.frame(x=runif(10),y=runif(10))
    
    p <- ggplot(dat, aes(x=x, y=y)) + 
            geom_point() +
            scale_x_continuous(expand=c(0,0)) + 
            scale_y_continuous(expand=c(0,0))   
    
    p + theme(axis.line=element_blank(),axis.text.x=element_blank(),
              axis.text.y=element_blank(),axis.ticks=element_blank(),
              axis.title.x=element_blank(),
              axis.title.y=element_blank(),legend.position="none",
              panel.background=element_blank(),panel.border=element_blank(),panel.grid.major=element_blank(),
              panel.grid.minor=element_blank(),plot.background=element_blank())
    

    It looks like there's still a small margin around the edge of the resulting .png when I save this. Perhaps someone else knows how to remove even that component.

    (Historical note: Since ggplot2 version 0.9.2, opts has been deprecated. Instead use theme() and replace theme_blank() with element_blank().)

    0 讨论(0)
提交回复
热议问题