Jawaban:
Bagaimana dengan sesuatu seperti:
plot.new()
x11()
adalah perintah R lintas platform untuk membuka perangkat baru. Jika Anda memiliki perangkat yang terbuka dan menelepon plot.new()
, perangkat saat ini akan dihapus.
x11()
dari over dev.new()
? Naluri saya adalah menggunakan yang terakhir untuk mengakomodasi apa pun perangkat default lokal, tetapi saya tidak yakin itu cara kerjanya.
x11()
karena kebiasaan. Saya bukan ahli dalam merencanakan di R tetapi setelah melihat dokumentasinya, dev.new()
mungkin akan lebih baik.
Saya menyarankan agar seseorang perlu membuat plot kosong untuk menambahkan beberapa grafik nanti. Jadi, menggunakan
plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))
Anda dapat menentukan batas sumbu grafik Anda.
Ini sedikit lebih sederhana dari solusi asli Anda:
plot(0,type='n',axes=FALSE,ann=FALSE)
ann=FALSE
, toh bakal jadi lahan kosong. Tapi solusi yang bagus, terima kasih!
Kalimat berikut tidak memplot apa pun di dalam plot dan akan tetap kosong.
plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")
Ini berguna ketika Anda ingin menambahkan garis atau titik setelahnya dalam satu for
lingkaran atau yang serupa. Ingatlah untuk mengubah nilai xlim
dan ylim
berdasarkan data yang ingin Anda plot.
Sebagai catatan tambahan:
Ini juga dapat digunakan untuk plot Kotak, plot Biola dan plot kawanan. bagi mereka yang ingat untuk menambahkan add = TRUE
fungsi plotting mereka dan juga menentukan at =
untuk menentukan nomor mana yang ingin Anda plot (defaultnya adalah sumbu x kecuali Anda telah mengatur horz = TRUE
dalam fungsi ini.
Adam, mengikuti komentar Anda di atas ("Saya ingin plot kosong berfungsi sebagai pengisi dalam plot multiplot (mfrow)."), Yang sebenarnya Anda inginkan adalah opsi mfg
par(mfg=c(row,column))
- yang mengontrol tempat Anda ingin meletakkan plot berikutnya. Misalnya, untuk meletakkan plot di tengah-tengah perkalian 3x3, lakukan
par(mfrow=c(3,3))
par(mfg=c(2,2))
plot(rnorm(10))
Anda memerlukan jendela plot baru, dan juga sistem koordinat, jadi Anda perlu plot.new()
dan plot.window()
, kemudian Anda dapat mulai menambahkan elemen grafik:
plot.new( )
plot.window( xlim=c(-5,5), ylim=c(-5,5) )
points( rnorm(100), rnorm(100) )
axis( side=1 )
grid.newpage() ## If you're using ggplot
grid() ## If you just want to activate the device.
grid()
tidak terkait dengan paket grid AFAIK
Jika ada yang mencari ggplot2
solusi, Anda dapat menggunakan salah satu cowplot
atau patchwork
paket
library(ggplot2)
### examples from cowplot vignettes
plot.mpg <- ggplot(mpg, aes(x = cty, y = hwy, colour = factor(cyl))) +
geom_point(size = 2.5)
plot.diamonds <- ggplot(diamonds, aes(clarity, fill = cut)) +
geom_bar() +
theme(axis.text.x = element_text(angle = 0, vjust = 0.5))
library(cowplot)
### use NULL
plot_grid(plot.mpg, NULL, NULL, plot.diamonds,
labels = c("A", "B", "C", "D"),
ncol = 2
)
# Note: if you want to initialize an empty drawing canvas, use ggdraw()
library(patchwork)
### use plot_spacer()
plot.mpg + plot_spacer() + plot_spacer() + plot.diamonds +
plot_layout(ncol = 2) +
plot_annotation(
title = "Plot title",
subtitle = "Plot subtitle",
tag_levels = "A",
tag_suffix = ")"
)
Dibuat pada 2019-03-17 oleh paket reprex (v0.2.1.9000)
Plot kosong dengan beberapa teks yang diatur posisinya.
plot(1:10, 1:10,xaxt="n",yaxt="n",bty="n",pch="",ylab="",xlab="", main="", sub="")
mtext("eee", side = 3, line = -0.3, adj = 0.5)
text(5, 10.4, "ddd")
text(5, 7, "ccc")
plot(0,xaxt='n',yaxt='n',bty='n',pch='',ylab='',xlab='')
, karena Anda menambahkan main = "", sub = ""
bahkan Anda mendapatkan hasil yang sama tanpa mereka.