Saya merencanakan regresi linier sederhana menggunakan R. Saya ingin menyimpan gambar itu sebagai PNG atau JPEG, apakah mungkin untuk melakukannya secara otomatis? (melalui kode)
Ada dua pertanyaan berbeda: Pertama, saya sudah melihat plot di monitor saya dan saya ingin menyimpannya apa adanya. Kedua, saya belum membuat plot, tetapi saya ingin langsung menyimpannya ke disk ketika saya menjalankan kode plot saya.
Jawaban:
Ada dua pertanyaan yang terkait erat, dan jawaban untuk masing-masing.
1. Sebuah gambar akan dihasilkan di masa depan dalam skrip saya, bagaimana cara menyimpannya ke disk?
Untuk menyimpan plot, Anda perlu melakukan hal berikut:
png()
,bmp()
,pdf()
atau serupadev.off()
Beberapa contoh kode untuk menyimpan plot ke
png
file:Hal ini dijelaskan dalam (gabungan) halaman bantuan untuk format grafis
?png
,?bmp
,?jpeg
dan?tiff
juga di halaman bantuan terpisah untuk?pdf
.Namun perhatikan bahwa gambar mungkin terlihat berbeda pada disk dengan plot yang sama langsung diplot ke layar Anda, misalnya jika Anda telah mengubah ukuran jendela di layar.
Perhatikan bahwa jika plot Anda dibuat oleh salah satu
lattice
atauggplot2
Anda harus mencetak plot secara eksplisit. Lihat jawaban ini yang menjelaskan hal ini lebih terinci dan juga tautan ke FAQ R: qplot ggplot tidak mengeksekusi pada sumber2. Saya sedang melihat plot di layar saya dan saya ingin menyalinnya 'apa adanya' ke disk.
Ini harus menyalin gambar dengan sempurna, sesuai dengan ukuran yang telah Anda lakukan ke jendela interaktif. Anda dapat, seperti pada bagian pertama dari jawaban ini, ganti
pdf
dengan tipe file lain sepertipng
.sumber
getwd()
dev.print
. Ada dua pertanyaan terkait erat yang menurut saya memerlukan jawaban yang berbeda. Sub-pertanyaan kedua pada dasarnya adalah "Bagaimana cara saya menyimpan gambar yang sudah saya plot ke layar saya?". Mohon maaf jika hasil edit saya tidak terlalu bagus, silakan perbaiki hasil edit saya.m3=garchFit(~arma(3,0)+garch(1,1))
danplot(m3)
.Jika Anda ingin terus melihat plot di R, opsi lain adalah menggunakan
dev.copy
:Jika Anda mencapai banyak jendela plot yang berantakan di R, gunakan
graphics.off()
untuk menutup semua jendela plot.sumber
dev.print
lebih baik karena menyalin gambar dari layar dengan tepat.dev.copy
memaksa setiap gambar menjadi kotak secara default. Ini membuat frustasi jika Anda mengatur semuanya dengan baik secara interaktifdev.print()
dengan parameter lebar dan tinggi untuk menentukan dimensi. misalnyadev.copy(device = png, filename = 'MyPlot.png', width = 1000, height = 500) dev.off()
Jika Anda menggunakan
ggplot2
cara penyimpanan yang disukai adalah menggunakanggsave
. Pertama, Anda harus memplot, setelah membuat plot yang Anda panggilggsave
:Format gambar ditentukan oleh ekstensi yang Anda pilih untuk nama file. Parameter tambahan dapat dikirimkan ke
ggsave
, terutamawidth
,height
, dandpi
.sumber
dev
, solusi ini bekerja pada mesin virtual tanpa perangkat grafis.Seperti ini
atau ini
atau ini
Dan mungkin yang lain juga. Mereka semua tercantum bersama di halaman bantuan.
sumber
Untuk pertanyaan pertama, saya menemukan
dev.print
yang terbaik ketika bekerja secara interaktif. Pertama, Anda mengatur plot Anda secara visual dan ketika Anda senang dengan apa yang Anda lihat, Anda dapat meminta R untuk menyimpan plot saat ini ke diskAnda dapat mengganti
pdf
dengan format lain sepertipng
.Ini akan menyalin gambar persis seperti yang Anda lihat di layar. Masalahnya
dev.copy
adalah bahwa gambar sering berbeda dan tidak ingat ukuran jendela dan aspek rasio - memaksa plot menjadi persegi secara default.Untuk pertanyaan kedua, (seperti yang sudah dijawab orang lain), Anda harus mengarahkan output ke disk sebelum Anda menjalankan perintah plotting Anda
sumber
Jika Anda menggunakan R Studio http://rstudio.org/ ada menu khusus untuk menghemat plot Anda sebagai format apa pun yang Anda suka dan pada resolusi apa pun yang Anda pilih
sumber
Jika Anda membuka perangkat menggunakan
png()
,bmp()
,pdf()
dll seperti yang disarankan oleh Andrie (jawaban terbaik), jendela dengan plot tidak akan muncul terbuka, hanya * .png, * bmp atau file * .pdf akan dibuat. Ini nyaman dalam perhitungan besar, karena R hanya dapat menangani jumlah jendela grafis yang terbatas.Namun, jika Anda ingin melihat plot dan juga menyimpannya, panggil
savePlot(filename, type)
setelah plot digambar dan jendela yang memuatnya aktif.sumber
sumber
Untuk menambah jawaban ini, jika Anda memiliki skrip R yang berisi panggilan yang menghasilkan plot ke layar (perangkat asli), maka semua ini dapat disimpan ke file pdf (perangkat default untuk shell non-interaktif) "Rplots.pdf "(nama default) dengan mengarahkan ulang skrip ke R dari terminal (dengan asumsi Anda menjalankan linux atau OS X), misalnya:
Ini dapat dikonversi ke jpg / png seperlunya
sumber
Dalam beberapa kasus seseorang ingin menyimpan dan mencetak plot r dasar. Saya menghabiskan sedikit waktu dan membuat fungsi utilitas ini:
Perhatikan bahwa seseorang harus menggunakan
quote
, jika tidak,plot(x)
panggilan dijalankan di lingkungan global danNULL
diteruskan kebasesave()
.sumber
sumber