Antworten:
Wie wäre es mit so etwas wie:
plot.new()
x11()
ist ein plattformübergreifender R-Befehl zum Öffnen eines neuen Geräts. Wenn Sie ein Gerät geöffnet haben und anrufen plot.new()
, wird das aktuelle Gerät gelöscht.
x11()
gegenüber dev.new()
? Mein Instinkt ist es, mit letzterem zu arbeiten, um das lokale Standardgerät aufzunehmen, aber ich bin mir nicht sicher, wie die Dinge so funktionieren.
x11()
aus Gewohnheit. Ich bin kein Experte für das Plotten in R, aber nach einem Blick auf die Dokumentation dev.new()
wäre es wahrscheinlich besser.
Ich schlage vor, dass jemand ein leeres Diagramm erstellen muss, um später einige Grafiken hinzuzufügen. Also mit
plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))
Sie können die Achsengrenzen Ihrer Grafik angeben.
Dies ist geringfügig einfacher als Ihre ursprüngliche Lösung:
plot(0,type='n',axes=FALSE,ann=FALSE)
ann=FALSE
, wird sowieso ein leerer Bereich sein. Aber eine tolle Lösung, danke!
Im Folgenden wird nichts im Diagramm dargestellt, und es bleibt leer.
plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")
Dies ist nützlich, wenn Sie anschließend Linien oder Punkte innerhalb einer for
Schleife oder ähnlichem hinzufügen möchten . Denken Sie daran, die Werte xlim
und ylim
basierend auf den Daten zu ändern, die Sie zeichnen möchten.
Als Randnotiz:
Dies kann auch für Boxplot-, Violin- und Schwarmplots verwendet werden. Denken Sie daran, die add = TRUE
Plotfunktion zu erweitern und anzugeben at =
, auf welcher Zahl Sie sie plotten möchten (Standard ist die x-Achse, sofern Sie horz = TRUE
diese Funktionen nicht festgelegt haben.
Adam, nach Ihrem obigen Kommentar ("Ich wollte, dass das leere Diagramm als Füllmaterial in einem Multiplot-Diagramm (mfrow) dient.") Wollen Sie eigentlich die Option mfg
par(mfg=c(row,column))
- welche steuert, wo Sie das nächste Diagramm platzieren möchten. Um beispielsweise einen Plot in die Mitte eines 3x3-Multiplots zu setzen, tun Sie dies
par(mfrow=c(3,3))
par(mfg=c(2,2))
plot(rnorm(10))
Sie benötigen ein neues Plotfenster sowie ein Koordinatensystem. Sie benötigen also plot.new()
und plot.window()
können dann mit dem Hinzufügen von Diagrammelementen beginnen:
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()
hat nichts mit dem Rasterpaket AFAIK
Wenn jemand nach einer ggplot2
Lösung sucht , können Sie entweder cowplot
oder patchwork
Pakete verwenden
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 = ")"
)
Erstellt am 17.03.2019 durch das reprex-Paket (v0.2.1.9000)
Ein leerer Plot mit einigen Texten, deren Position festgelegt ist.
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='')
, da Sie hinzufügen main = "", sub = ""
, dass Sie auch ohne sie das gleiche Ergebnis erzielen.