Réponses:
Que diriez-vous de quelque chose comme:
plot.new()
x11()
est une commande R multiplateforme pour ouvrir un nouvel appareil. Si vous avez un appareil ouvert et appelez plot.new()
, l'appareil actuel sera effacé.
x11()
plus dev.new()
? Mon instinct est d'aller avec ce dernier pour s'adapter à tout le périphérique local par défaut, mais je ne suis pas certain que ce soit comme ça que les choses fonctionnent.
x11()
par habitude. Je ne suis pas un expert du tracé en R mais après avoir jeté un coup d'œil à la documentation, ce dev.new()
serait probablement mieux.
Je suggère que quelqu'un ait besoin de créer une intrigue vide afin d'y ajouter des graphiques plus tard. Donc, en utilisant
plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))
vous pouvez spécifier les limites des axes de votre graphique.
C'est légèrement plus simple que votre solution d'origine:
plot(0,type='n',axes=FALSE,ann=FALSE)
ann=FALSE
, sera de toute façon une zone vide. Mais une excellente solution, merci!
Ce qui suit ne trace rien dans l'intrigue et il restera vide.
plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")
Ceci est utile lorsque vous souhaitez ajouter des lignes ou des points par la suite dans une for
boucle ou quelque chose de similaire. N'oubliez pas de modifier les valeurs xlim
et en ylim
fonction des données que vous souhaitez tracer.
En remarque:
cela peut également être utilisé pour les parcelles Boxplot, Violin et Swarm Plots. pour ceux-ci, n'oubliez pas d'ajouter add = TRUE
à leur fonction de traçage et de spécifier également at =
sur quel nombre vous voulez les tracer (la valeur par défaut est l'axe des x sauf si vous avez défini horz = TRUE
ces fonctions.
Adam, suite à votre commentaire ci-dessus ("Je voulais que le tracé vide serve de remplissage dans un tracé multiplot (mfrow)."), Ce que vous voulez réellement, c'est l'option mfg
par(mfg=c(row,column))
- qui contrôle où vous voulez placer le prochain tracé. Par exemple, pour placer un tracé au milieu d'un multiplot 3x3, faites
par(mfrow=c(3,3))
par(mfg=c(2,2))
plot(rnorm(10))
Vous avez besoin d'une nouvelle fenêtre de tracé, ainsi que d'un système de coordonnées, vous avez donc besoin de plot.new()
et plot.window()
, vous pouvez alors commencer à ajouter des éléments de graphique:
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()
n'est pas lié au paquet de grille AFAIK
Si quelqu'un cherche une ggplot2
solution, vous pouvez utiliser l'un cowplot
ou l' autre des patchwork
packages
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 = ")"
)
Créé le 17/03/2019 par le package reprex (v0.2.1.9000)
Un graphique vide avec quelques textes qui sont positionnés.
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='')
, puisque vous ajoutez main = "", sub = ""
même si vous obtenez le même résultat sans eux.