Відповіді:
Як щодо чогось такого:
plot.new()
x11()
- це кросплатформна команда R для відкриття нового пристрою. Якщо пристрій відкрито та дзвонить plot.new()
, поточний пристрій буде очищено.
x11()
над dev.new()
? Мій інстинкт полягає в тому, щоб разом із останнім розміщувати місцеві пристрої за замовчуванням, але я не впевнений, як все працює.
x11()
через звичку. Я не фахівець із складання проекту в R, але, оглянувши документацію, dev.new()
мабуть, буде краще.
Я пропоную, що комусь потрібно зробити порожній сюжет, щоб пізніше додати трохи графіки на нього. Отже, використовуючи
plot(1, type="n", xlab="", ylab="", xlim=c(0, 10), ylim=c(0, 10))
ви можете вказати межі осей вашої графіки.
Це дещо простіше, ніж ваше оригінальне рішення:
plot(0,type='n',axes=FALSE,ann=FALSE)
ann=FALSE
, все одно буде порожня область. Але чудове рішення, дякую!
Далі нічого не відображає в сюжеті, і воно залишиться порожнім.
plot(NULL, xlim=c(0,1), ylim=c(0,1), ylab="y label", xlab="x lablel")
Це корисно, коли ви хочете після цього додати лінії чи крапки в for
циклі чи щось подібне. Просто не забудьте змінити значення xlim
та ylim
значення, виходячи з даних, які ви хочете побудувати.
Як бічна примітка:
це також можна використовувати для Boxplot, скрипкових сюжетів та роїв. для тих, хто пам'ятає додати add = TRUE
їх функцію побудови графіків, а також вказати, at =
для якого числа ви хочете побудувати їх (за замовчуванням - ось x, якщо ви не встановили horz = TRUE
ці функції.
Адам, виходячи з Вашого коментаря вище ("Я хотів, щоб порожній сюжет був заповнювачем у мультиплот-сюжеті".
par(mfg=c(row,column))
- який контролює, куди потрібно поставити наступний сюжет. Наприклад, щоб поставити сюжет посеред мультиплоту 3х3, зробіть
par(mfrow=c(3,3))
par(mfg=c(2,2))
plot(rnorm(10))
Вам потрібно нове вікно графіку , а також система координат, тож вам потрібно, plot.new()
і plot.window()
тоді ви можете почати додавати графічні елементи:
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
рішення, ви можете використовувати cowplot
або patchwork
пакунки
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 = ")"
)
Створено 2019-03-17 пакетом reprex (v0.2.1.9000)
Порожній сюжет з деякими текстами, які встановлені позицією.
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='')
, оскільки ви додаєте, main = "", sub = ""
навіть без них ви отримаєте такий же результат.