Save ggplot with a function

前端 未结 3 1650
北荒
北荒 2021-01-31 08:21

I would like to create a function to save plots (from ggplot).

Here is a data frame:

### creating data frame
music <- c(\"Blues\", \"Hip-         


        
相关标签:
3条回答
  • 2021-01-31 08:23

    You can use print() to save plots produced from ggplot2 to a file.

    First, define your function to save plots:

    savePlot <- function(myPlot) {
            pdf("myPlot.pdf")
            print(myPlot)
            dev.off()
    }
    

    Create your plot:

     myPlot <- ggplot(ggplot(data=df.music, aes(x=music, y=number)) +
     geom_bar(stat="identity") +
     xlab(colnames(df.music)[1]) +
     ylab(colnames(df.music)[2]) +
     ylim(c(0,11)) +
     ggtitle("Ulubiony typ muzyki wśród studentów")
    

    And finally call the function:

    savePlot(myPlot)
    

    Alternatively, you could just use ggsave() after creating your plot:

    ggsave(filename="myPlot.pdf", plot=myPlot)
    
    0 讨论(0)
  • 2021-01-31 08:29

    If you would like an image file instead of a pdf, also the following works

    ggsave(filename="myPlot.jpg", plot=last_plot())
    

    or with additional parameters, as follows.

    ggsave(filename="myPlot.jpg", plot=lastplot(),
           width = 10, height = 5, 
           units = "cm", # other options are "in", "cm", "mm" 
           dpi = 200
           )
    

    Also following file types are supported "eps", "ps", "tex" (pictex), "pdf", "jpeg", "tiff", "png", "bmp", "svg" or "wmf".

    0 讨论(0)
  • 2021-01-31 08:41

    Following was useful for me, may be for someone else as well. One can save the last plot without explicitly referring it as well.

    ggsave("filename.pdf",  # jpg, png, eps, tex, etc.
           plot = last_plot(), # or an explicit ggplot object name,
           width = 7, height = 5, 
           units = "in", # other options c("in", "cm", "mm"), 
           dpi = 300)
    
    0 讨论(0)
提交回复
热议问题