показать несколько графических окон R в (r)gedit

Я использую плагин rgedit для gedit. Я хотел бы, чтобы одновременно отображалось более одного графического (графического) окна. В настоящее время всякий раз, когда я plot(), график перезаписывает предыдущее окно графика.


person David B    schedule 01.09.2010    source источник


Ответы (3)


Не проблема gedit, а общая функция R — используйте x11() (или windows()) для создания новых устройств построения графиков.

Затем вы можете использовать dev.set() и др., чтобы переключаться между ними.

person Dirk Eddelbuettel    schedule 01.09.2010
comment
Могу ли я установить, чтобы это делалось автоматически, а не вручную каждый раз? - person David B; 02.09.2010
comment
Конечно. Вы можете написать свою собственную функцию myplot(...), которая вызывает dev.new() перед вызовом plot() с остальными аргументами. - person Dirk Eddelbuettel; 02.09.2010

Чтобы добавить к ответу Дирка, вы также можете построить несколько графиков в одном окне, посмотрите на ?par, в частности на параметр mfrow

Например, par(mfrow=c(2,2)) даст вам макет 2x2 для вашего участка.

Для более сложных макетов см. ?split.screen и ?layout


Для переключения между устройствами вы можете сделать:

# Create 3 plots
dev.new()  # Or X11()
dev.1 <- as.integer(dev.cur())
dev.new()
dev.2 <- as.integer(dev.cur())
dev.new()
dev.3 <- as.integer(dev.cur())

x <- seq(1, 100, 0.1)

# Switch to device 1
dev.set(dev.1)
plot(x, sin(x), "l")
# Switch to device 3
dev.set(dev.3)
plot(x, cos(x), "l")
# Add something to graph #1
dev.set(dev.1)
points(x, cos(x), "l", col="red")

Обратите внимание, что, хотя номера устройств, которые вы сохраняете в dev.1, dev.2 и dev.3, в основном будут последовательными (1,2,3), вы всегда должны использовать dev.cur для получения номера устройства, так как вы не можете с уверенностью предположить, что они будут точно такими же. 1,2,3 и т. д. (у вас могут быть открыты другие устройства)

person nico    schedule 01.09.2010

Или вы можете открыть новую вкладку консоли, но это не так элегантно (вам нужно отправить свой код дважды), как предложения, сделанные Дирком и Нико.

person Roman Luštrik    schedule 02.09.2010