我想滚动浏览我在RStuido中创建的所有图。经过一天的数据整理后,我想看看我可以使用哪些图表。因此,我想快速滚动查看图表的缩略图。
等待在现有绘图查看器中单击左键需要花费一些时间,因为必须重新绘制每个图形,然后才能再次单击左键。我想一次看到所有这些,然后选择一个进行更仔细的检查。我是否缺少能够执行此操作的程序包或设置?
答案 0 :(得分:2)
根据您的设置,一种选择是将您的工作组织到R Markdown文件中。
该选项可以在线显示所有图表,只需在RStudio的Tools -> Global Options ... -> R Markdown
菜单下进行设置即可。然后,您将在RStudio的编辑器中预览所有图表,并可以单击Show in New Window
进行进一步调查:
答案 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
...以及尝试修复的方法。绘图代码无关紧要,但是您在浏览器窗口中看到的结果在这里:
基本图形需要做更多的工作,完成绘制工作后,使用plot_done()
。这是必需的(我认为),因为使用基本图形通常需要几个函数调用({plot
然后是axis
,lines
,更多的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)
它会再次更新。