How to save a plot as image on the disk?

后端 未结 11 1106
失恋的感觉
失恋的感觉 2020-11-22 10:38

I plot a simple linear regression using R. I would like to save that image as PNG or JPEG, is it possible to do it automatically? (via code)

There are two different

相关标签:
11条回答
  • 2020-11-22 10:42

    If you want to keep seeing the plot in R, another option is to use dev.copy:

    X11 ()
    plot (x,y)
    
    dev.copy(jpeg,filename="plot.jpg");
    dev.off ();
    

    If you reach a clutter of too many plot windows in R, use graphics.off() to close all of the plot windows.

    0 讨论(0)
  • 2020-11-22 10:42

    To add to these answers, if you have an R script containing calls that generate plots to screen (the native device), then these can all be saved to a pdf file (the default device for a non-interactive shell) "Rplots.pdf" (the default name) by redirecting the script into R from the terminal (assuming you are running linux or OS X), e.g.:

    R < myscript.R --no-save
    

    This could be converted to jpg/png as necessary

    0 讨论(0)
  • 2020-11-22 10:46

    Like this

    png('filename.png')
    # make plot
    dev.off()
    

    or this

    # sometimes plots do better in vector graphics
    svg('filename.svg')
    # make plot
    dev.off()
    

    or this

    pdf('filename.pdf')
    # make plot
    dev.off()
    

    And probably others too. They're all listed together in the help pages.

    0 讨论(0)
  • 2020-11-22 10:47

    For the first question, I find dev.print to be the best when working interactively. First, you set up your plot visually and when you are happy with what you see, you can ask R to save the current plot to disk

    dev.print(pdf, file="filename.pdf");
    

    You can replace pdf with other formats such as png.

    This will copy the image exactly as you see it on screen. The problem with dev.copy is that the image is often different and doesn't remember the window size and aspect ratio - it forces the plot to be square by default.

    For the second question, (as others have already answered), you must direct the output to disk before you execute your plotting commands

    pdf('filename.pdf')
    plot( yourdata )
    points (some_more_data)
    dev.off() # to complete the writing process and return output to your monitor
    
    0 讨论(0)
  • 2020-11-22 10:54

    If you open a device using png(), bmp(), pdf() etc. as suggested by Andrie (the best answer), the windows with plots will not pop up open, just *.png, *bmp or *.pdf files will be created. This is convenient in massive calculations, since R can handle only limited number of graphic windows.

    However, if you want to see the plots and also have them saved, call savePlot(filename, type) after the plots are drawn and the window containing them is active.

    0 讨论(0)
  • 2020-11-22 10:56
    dev.copy(png,'path/pngFile.png')
    plot(YData ~ XData, data = mydata)
    dev.off()
    
    0 讨论(0)
提交回复
热议问题