R gWidgets 包:在 ggraphis 区域中更新 ggplot 图表时停止白屏闪烁

R gWidgets package: stop white screen flashing upon updating a ggplot chart in a ggraphis area

提问人:user2234497 提问时间:5/31/2013 最后编辑:user2234497 更新时间:12/10/2013 访问量:565

问:

如何省略在 R 包的 ggraphis 区域中更改或更新图表时闪烁的白屏?ggplot2gWidgets

当我使用 R 包中的 R 图时,在更新图表/绘图期间不会出现白屏。base

### datos
library(cairoDevice)
library(ggplot2)
library(gWidgets)
library(gWidgetsRGtk2)
library(animation)
require(RGtk2)

variable <-rnorm(100)
datetime <-1:100

data=data.frame(variable=variable,datetime=datetime)

options(guiToolkit = "RGtk2")
window <- gwindow ("My first GUI",parent=c(1,1))
group1   <- ggroup(cont = window, horizontal=F,label="Variable1")
option                   <- glayout(cont=group1,horizontal=T ,spacing=0)
option[1,1:6,expand=T]   <-gb<- gbutton("Variable1", cont = option)
font(gb)                 <-c(weight="ultra-bold",size=11)
option[1,1:6,expand=T]  <-g1<-ggraphics(cont = option)
oopt = ani.options(interval = 1,loop =TRUE)
n=dim(data)[1]
for(i in 1:n){
  dev.hold()
  data2=data[which(data$datetime>=(i) & data$datetime<=(i+10)),]
  SPC <- ggplot(data2,aes(x=datetime,y=variable,group=1))+
    geom_line(size=1)+geom_point(size=3)+ 
    geom_line(aes(y=mean(variable),x=datetime[1:length(datetime)]),size=1,colour="green")+
geom_line(aes(y=mean(variable)+((3*sd(variable))/sqrt(length(variable))),x=datetime[1:length(datetime)]),size=1,colour="red")+
geom_line(aes(y=mean(variable)-((3*sd(variable))/sqrt(length(variable))),x=datetime[1:length(datetime)]),size=1,colour="red")+
scale_x_continuous(limits=c(i,i+10),breaks=c(seq(i,i+10,1)))+
theme_bw(base_size=12,base_family="")  
  print(SPC)

  ani.pause()
}
ani.options(oopt)

-
r ggplot2 gwidgets

评论

0赞 dlaehnemann 5/31/2013
欢迎来到 Stackoverflow!我对你的问题有点困惑,但还是试图清理一下。如果我的任何编辑改变了含义,请重新编辑您的帖子。“白屏列表到更改”是什么意思?如果你能澄清这一点,那可能会得到答案!
0赞 user2234497 5/31/2013
我正在 R 中使用 gWidgets 包构建一个 GUI,我想用带有 ggplot 图形的动画包实现一个“移动块”,但是这个图形在更新到其他图形时会延迟,并且在更新过程中出现白屏。这样可以避免产生运动效果并导致闪烁效果。我想要一个与金融图表相似的图表,该图表在时间内不断更新,但我想使用 ggplot 图表。
0赞 dlaehnemann 5/31/2013
感谢您的澄清。我想我现在明白你的问题了。但是,我不知道 gWidgets 包,因此无法为您提供太多见解。但是,您可能还希望编辑您的问题,以包含一些示例数据和一些最小代码。关于如何在 R 中执行此操作,有一些很好的建议

答:

1赞 ferg 12/10/2013 #1

尝试更改 印刷(SPC) 自 打印(SPC,newpage=F)