如何一次查看Rstudio中的所有地块?

时间:2018-12-16 16:48:29

标签: r rstudio

我想滚动浏览我在RStuido中创建的所有图。经过一天的数据整理后,我想看看我可以使用哪些图表。因此,我想快速滚动查看图表的缩略图。

等待在现有绘图查看器中单击左键需要花费一些时间,因为必须重新绘制每个图形,然后才能再次单击左键。我想一次看到所有这些,然后选择一个进行更仔细的检查。我是否缺少能够执行此操作的程序包或设置?

2 个答案:

答案 0 :(得分:2)

根据您的设置,一种选择是将您的工作组织到R Markdown文件中。

该选项可以在线显示所有图表,只需在RStudio的Tools -> Global Options ... -> R Markdown菜单下进行设置即可。然后,您将在RStudio的编辑器中预览所有图表,并可以单击Show in New Window进行进一步调查:

enter image description here

答案 1 :(得分:2)

这是一种提供某些功能的方法,尽管它有点骇人听闻。这样做的好处是它提供了易于扫描的绘图历史缩略图数组。

软件包rmote提供了远程查看图的功能。也就是说,如果我通过SSH连接到远程主机,并且不想尝试进行X转发,则可以转发一个简单的端口,并在网页上查看所有图形。 (注意:这在本地就可以了,不需要ssh-ing。)

devtools::install_github("cloudyr/rmote")

library(rmote)
start_rmote()
# To stop the server, run servr::daemon_stop("140656622179224") or restart your R session
# Serving the directory /tmp/RtmpgOIU3c/rmote_server at http://127.0.0.1:4321

此时,打开浏览器窗口,访问该URL http://127.0.0.1:4321

此答案的其余大部分都只是演示基本图形ggplot2和不起作用的gridExtra ...以及尝试修复的方法。绘图代码无关紧要,但是您在浏览器窗口中看到的结果在这里:

sample array of plots using <code>rmote</code>

基本图形需要做更多的工作,完成绘制工作后,使用plot_done()。这是必需的(我认为),因为使用基本图形通常需要几个函数调用({plot然后是axislines,更多的points等)。即使您只想做一个单次调用图并进行处理,您仍然需要做plot_done()

plot(mpg~disp, data=mtcars)
# serving graphics through rmote
# when finished with plot commands, call plot_done()
abline(a=10, b=1/10)
plot_done()
# making thumbnail

运行最后一个功能后,网页会自动以全尺寸图像和缩略图列表进行更新。我会继续...

ggplot2图形按“原样”工作,不需要plot_done()

library(ggplot2)
qplot(carat, price, data = diamonds)
qplot(carat, data = diamonds, geom = "histogram", binwidth = 0.05)
qplot(carat, data = diamonds, geom = "histogram")

不幸的是,我无法立即让grid.arrange地块开始工作。

通常,当您使用rmote时,没有图形设备:

dev.list()
# NULL

但是,当我尝试grid.arrange时:

library(gridExtra)
plot1 <- qplot(carat, data = diamonds, geom = "histogram", binwidth = 1)
plot2 <- qplot(carat, data = diamonds, geom = "histogram", binwidth = 0.1)
plot3 <- qplot(carat, data = diamonds, geom = "histogram", binwidth = 0.05)
grid.arrange(plot1, plot2, plot3, ncol=3)

什么都没有显示,但是现在我们启动了一个新设备:

dev.list()
# pdf
#   2

在这一点上,现在正常的绘图无效:

qplot(carat, data = diamonds, geom = "histogram", binwidth = 1)
# - not sending to rmote because another graphics device has been opened...
# - sending to the open graphics device instead...
# - to send to rmote, close all active graphics devices using graphics.off()
dev.list()
# pdf
#   2
graphics.off()
qplot(carat, data = diamonds, geom = "histogram", binwidth = 1)

它会再次更新。