首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用X11窗口的r脚本只打开一秒钟

使用X11窗口的r脚本只打开一秒钟
EN

Stack Overflow用户
提问于 2014-06-14 14:00:44
回答 2查看 2.8K关注 0票数 6

我正在通过Linux 16命令行运行一个R脚本。它包含了我想要在窗口中显示的框图。因此,我使用x11()函数来创建该窗口。这是我的代码:

代码语言:javascript
复制
testdata <- data.frame(sample(1:1000,size=100,replace=T), row.names=NULL)
colnames(testdata)<-c("data")

x11()
boxplot(testdata, main="Boxplot der Testdaten", horizontal=TRUE)

当我在Rstudio中运行这个函数时,它将打开一个窗口并显示创建的盒图。但是,每当我从Linux 16计算机的命令行运行它时,窗口就会打开一秒钟,然后再次关闭。我能看一下盒子里的情节。我真的找不到理由。我对R非常陌生,以前从未使用过X11。任何想法都会很感激的。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-14 16:10:09

这或多或少是个常见问题。部分原因是您似乎误解了所有命令是如何终止的。也就是说,当您调用ls时,它也不会停止。

所以这里你需要一些额外的东西。可能的做法是:

  • 只要在Sys.sleep(10)上睡觉就行了,等10秒就好了。
  • 等待通过readLines(stdin())或类似的未经测试的用户输入
  • 使用随R附带的tcltk包,在所有平台上都可用,以弹出一个窗口,用户必须单击该窗口才能使单击消失。多年来,该解决方案已在r-help上发布了几次。

但在这个时代,你也可以重新思考这个问题。我通过最棒的发亮软件包为同事准备分析和可视化,并将其显示在网页上,取得了很好的成功。每个人都有网页浏览器..。

票数 6
EN

Stack Overflow用户

发布于 2019-06-20 17:15:02

你可以睡觉,直到所有的窗户关闭。

代码语言:javascript
复制
while(names(dev.cur()) !='null device') Sys.sleep(1)

在我的机器上,在调用x11()之后,names(dev.cur())是"X11cairo“。关闭使用x11打开的所有/任意窗口后,names(dev.cur())成为“空设备”。

代码语言:javascript
复制
testdata <- data.frame(sample(1:1000,size=100,replace=T), row.names=NULL)
colnames(testdata)<-c("data")

x11()
boxplot(testdata, main="Boxplot der Testdaten", horizontal=TRUE)
# wait until window is closed (check every second)
while(names(dev.cur()) !='null device') Sys.sleep(1)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24220676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档