Yanıtlar:
Şunun gibi bir şeye ne dersiniz:
plot.new()
x11(), yeni bir cihaz açmak için çapraz platform R komutudur. Açık bir cihazınız varsa ve arama yaparsanız plot.new(), mevcut cihaz silinecektir.
x11()üzerinde dev.new()? İçgüdülerim, yerel varsayılan aygıt ne olursa olsun, ikincisi ile gitmek, ancak işlerin nasıl çalıştığından emin değilim.
x11()Alışkanlık nedeniyle kullanıyorum . R'de çizim konusunda uzman değilim, ancak belgelere baktıktan sonra dev.new()muhtemelen daha iyi olur.
Daha sonra üzerine grafik eklemek için birisinin boş arsa yapması gerektiğini öneririm. Yani, kullanarak
plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))
grafiğinizin eksen sınırlarını belirleyebilirsiniz.
Bu, orijinal çözümünüzden marjinal olarak daha basittir:
plot(0,type='n',axes=FALSE,ann=FALSE)
ann=FALSE, zaten boş bir alan olacak. Ama harika bir çözüm, teşekkürler!
Aşağıdakiler arsadaki hiçbir şeyi çizmez ve boş kalacaktır.
plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")
Bu, daha sonra bir fordöngü veya benzeri bir şey içinde çizgiler veya noktalar eklemek istediğinizde kullanışlıdır . Grafiğini çizmek istediğiniz verilere göre xlimve ylimdeğerlerini değiştirmeyi unutmayın .
Bir yan not olarak:
Bu, Kutu grafiği, Keman grafikleri ve sürü grafikleri için de kullanılabilir. add = TRUEonlar için çizim işlevlerine eklemeyi unutmayın ve at =bunları hangi sayıya çizmek istediğinizi de belirtin ( horz = TRUEbu işlevlerde ayarlamadıysanız varsayılan x eksenidir .
Adam, yukarıdaki yorumunuzu takiben ("Boş arsanın çok alanlı (mfrow) bir arsa içinde dolgu işlevi görmesini istedim."), Aslında istediğiniz şey mfg seçeneği
par(mfg=c(row,column))
- sonraki arsayı nereye koymak istediğinizi kontrol eder. Örneğin, 3x3 çoklu slotun ortasına bir grafik koymak için,
par(mfrow=c(3,3))
par(mfg=c(2,2))
plot(rnorm(10))
Yeni bir çizim penceresine ve ayrıca bir koordinat sistemine ihtiyacınız var, bu nedenle ihtiyacınız var plot.new()ve plot.window()ardından grafik öğeleri eklemeye başlayabilirsiniz:
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()AFAIK
ggplot2Çözüm arayan biri varsa , ya cowplotda patchworkpaketleri kullanabilirsiniz
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 = ")"
)

Reprex paketi (v0.2.1.9000) tarafından 2019-03-17 tarihinde oluşturuldu
Pozisyonu belirlenmiş bazı metinleri içeren boş bir arsa.
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=''), çünkü eklerseniz main = "", sub = ""bile aynı sonucu onlarsız alırsınız.