平台中立呼吁新的情节

时间:2012-01-28 20:45:26

标签: r

我有一个调用多个窗口的功能(新的图形设备窗口)。为了实现这一点,我使用windows()。这是有效的,但是因为这是一个包,我如何使它平台中立,所以每个绘图在新窗口中绘制,同时离开旧窗口?

我目前拥有的内容:

WORD.C <- function(WORDS){
require(wordcloud)

L2 <- lapply(WORDS, function(x) as.data.frame(table(x), stringsAsFactors = FALSE))

    FUN <- function(X){
        windows()  #how to make this platform neutral
        wordcloud(X[, 1], X[, 2], min.freq=1)
    }
    lapply(L2, FUN)
}

WORD.C(list.xy)

2 个答案:

答案 0 :(得分:7)

dev.new()会满足您的需求吗?它会打开一个在控制台会话中设置的默认类型的图形窗口。

答案 1 :(得分:4)

Mac通常会打开一个X11窗口,因此这可能是一个最小的解决方案:

if( .Platform$OS.type =="unix" ) { X11() } else { windows() }

如果要在GUI类型上进行分支,则可以使用:

if( .Platform$GUI %in% ("X11", "Tk") ) { X11() } else { 
      if ( .Platform$GUI == "AQUA" ){ quartz()} else {
             windows()                            }     }
# For more details
?.Platform
?Devices