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 for
dö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 xlim
ve ylim
değ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 = TRUE
onlar için çizim işlevlerine eklemeyi unutmayın ve at =
bunları hangi sayıya çizmek istediğinizi de belirtin ( horz = TRUE
bu 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 cowplot
da patchwork
paketleri 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.