Je dois faire un complot vide. C'est le meilleur que je puisse trouver.
plot(0, xaxt = 'n', yaxt = 'n', bty = 'n', pch = '', ylab = '', xlab = '')
Des solutions plus simples?
P.S .: complètement vide, pas d'axe etc.
Que diriez-vous de quelque chose comme:
plot.new()
Je suggère que quelqu'un ait besoin de créer un tracé vide pour pouvoir y ajouter des graphiques ultérieurement. 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.
Ceci est légèrement plus simple que votre solution d'origine:
plot(0,type='n',axes=FALSE,ann=FALSE)
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 ensuite ajouter des lignes ou des points dans une boucle for
ou quelque chose de similaire. N'oubliez pas de changer les valeurs xlim
et ylim
en fonction des données que vous souhaitez tracer.
Adam, à la suite de votre commentaire ci-dessus ("Je voulais que le tracé vide serve de remplissage dans un tracé multiplot (mfrow)."), Ce que vous voulez en réalité est l'option mfg
par(mfg=c(row,column))
- qui contrôle où vous voulez mettre la prochaine parcelle. Par exemple, pour placer une parcelle au milieu d’un multiplot 3x3,
par(mfrow=c(3,3))
par(mfg=c(2,2))
plot(rnorm(10))
Vous avez besoin d'une nouvelle fenêtre de tracé et 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 graphiques:
plot.new( )
plot.window( xlim=c(-5,5), ylim=c(-5,5) )
points( rnorm(100), rnorm(100) )
axis( side=1 )
Votre solution présente un intérêt que plot.new()
ne présente cependant pas: dans le tracé vide, vous "dessinez", vous pouvez écrire du texte aux coordonnées spécifiées avec text(x = ..., y = ..., your_text)
.
grid.newpage() ## If you're using ggplot
grid() ## If you just want to activate the device.
Une parcelle vide avec des 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")
Si quelqu'un recherche une solution ggplot2
, vous pouvez utiliser soit cowplot
ou 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 2019-03-17 par le paquet reprex (v0.2.1.9000)