R低性能绘图在gWidgets2中pch = 16

时间:2015-10-16 12:43:18

标签: r gtk2 gwidgets

在Windows上我最近将R从3.1.2更新到3.2.2并更新了我正在使用的所有软件包(包括cairoDevice)。现在我观察到gWidgets2下的绘图显示了非常差的性能,特别是对于pch = 16,17,18:

library(gWidgets2,gWidgets2RGtk2)
options(guiToolkit="RGtk2")
win <- gwindow("Plot a figure",expand=TRUE)
gg <- ggraphics(container=win,expand=TRUE)
a <- seq(0,100,0.1) 
for (b in 1:20){
  par(pch = b)
  plot(c(0,100),c(0,100))
  start_time <- Sys.time()
  points(a,a)
  end_time <- Sys.time()
  print(paste("pch =",b,"time to plot:",end_time-start_time))
}

给出:

[1] "pch = 1 time to plot: 0.134000062942505"
[1] "pch = 2 time to plot: 0.0380001068115234"
[1] "pch = 3 time to plot: 0.0569999217987061"
[1] "pch = 4 time to plot: 0.0550000667572021"
[1] "pch = 5 time to plot: 0.0409998893737793"
[1] "pch = 6 time to plot: 0.0379998683929443"
[1] "pch = 7 time to plot: 0.0859999656677246"
[1] "pch = 8 time to plot: 0.10699987411499"
[1] "pch = 9 time to plot: 0.0929999351501465"
[1] "pch = 10 time to plot: 0.180000066757202"
[1] "pch = 11 time to plot: 0.0740001201629639"
[1] "pch = 12 time to plot: 0.0859999656677246"
[1] "pch = 13 time to plot: 0.184999942779541"
[1] "pch = 14 time to plot: 0.062999963760376"
[1] "pch = 15 time to plot: 0.871000051498413"
[1] "pch = 16 time to plot: 49.2030000686646"
[1] "pch = 17 time to plot: 17.3880000114441"
[1] "pch = 18 time to plot: 24.2620000839233"
[1] "pch = 19 time to plot: 0.174000024795532"
[1] "pch = 20 time to plot: 0.128999948501587"

如果没有gWidgets2,则数字远低于0.1秒。这种效果是可重复的。我的同事也看到了同样的情况。

它必须与我更新的包有关。因为当我删除R 3.2.2并安装3.1.2时,我不会在更新所有内容之前取回我的表现。

任何想法?

1 个答案:

答案 0 :(得分:0)

[这是编辑。起初它报告第一种方法没有减速。]

这不是一个真正的答案,而是一个后续行动。这很奇怪。我有三种方法可以做到这一点。第一个绕过gwidgets2:

win <- gtkWindow() gg <- gtkDrawingAreaNew() ps = 12 cairoDevice::asCairoDevice(gg, pointsize=ps) win$add(gg)

第二个是绕过ggraphics的混合体:

win <- gwindow() gg <- gtkDrawingAreaNew() ps <- 12 cairoDevice::asCairoDevice(gg, pointsize=ps) add(win, gg)

(gWidgets2和cairoDevice的混合体)

和你原来的

win <- gwindow() gg <- ggraphics(cont=win)

起初我报告第一种方法按预期工作,但不是后者2.现在我看到相反的情况。后两者的表现要好一些,但在pch = 16,17或18时都表现不佳。

我认为您对cairoDevice包的评论可能很合适。我使用加载RGtk2后提示时安装的Gtk测试了上述内容。我不知道该怎么办。在Windows下的ggraphics设备还有其他报道的问题,所有这些都与我有类似的答案。希望这个对你的计划不致命。

(我在GitHub上打开了一个问题:https://github.com/jverzani/gWidgets2RGtk2/issues/15继续讨论,因为这不适合stackoverflow。)