小编Osk*_*son的帖子

如何从gWidgets和处理程序返回值?

我正在尝试为R包开发GUI(使用gWidgets).我的计划是构建一个包含数据的主窗口,并使用按钮为每个函数调用小的gui包装器.不幸的是我遇到了一个基本的(?)问题 - 我不知道如何传输数据.

Questons:

  • 如何在不同的窗口之间正确发送数据?
  • 如何从另一个窗口中的处理程序中发送数据?

我的问题类似于: 使用gWidgets在R中加载和保存变量,但是根据我的阅读,不推荐使用.GlobalEnv.

我也看到有人使用<< - 运算符:http://www.mail-archive.com/r-sig-gui@r-project.org/msg00053.html,但我无法正确地重现它(和我认为它不适用于我的例子.

下面是一个简单的例子,我尝试将文本发送到另一个窗口,如果按下按钮则再次返回.我已尝试在处理程序内返回,但这不起作用(也不确定是否允许).子窗口在处理程序/内部函数可以对数据执行操作之前立即在函数末尾返回其值.我不知道如何从处理程序到主窗口.

main <- function(){

  library(gWidgets)
  options(guiToolkit="RGtk2")

  w <- gwindow(title="Main window",
               visible=FALSE)

  txt <- gtext(text="Initial text in main window.",
               container=w)

  btn <- gbutton("Send to sub window", container=w)

  addHandlerChanged(btn, handler = function(h, ...) {
    shouldbenew <- subwindow(svalue(txt))
    svalue(txt) <- paste("The sub window immediately returns 'TRUE', before pushing 'Return to main':", shouldbenew )
  } )

  visible(w) <- TRUE

}

subwindow<- function(text){

  library(gWidgets)
  options(guiToolkit="RGtk2")

  sw <- gwindow(title="Sub window", …
Run Code Online (Sandbox Code Playgroud)

r gwidgets

8
推荐指数
1
解决办法
3828
查看次数

使用 aes_string 时 ggplot2 中两个 geom_point() 的颜色

我想从数据框中的两个系列“Pos”和“Neg”(y 值)生成一个图。x 值位于“平均值”列中。我希望这个系列有不同的颜色。

搜索 stackoverflow 给了我一个类似的问题:更改 ggplot2 中两个 geom_point() 的颜色,但我想使用 aes_string 以避免在检查包时出现注释。

我使用 aes 和“自动”颜色使其工作,如下面的第一个示例所示。但是,我无法弄清楚如何使用 aes_string 生成相同的图,并且仍然让 ggplot 决定颜色。我觉得这应该是一件很简单的事情......

一个可重现的例子:

exData <- data.frame(Marker = rep("TH01", 10),
                 Mean = seq(1:10),
                 Neg = -1*runif(10,0.1,1),
                 Pos = runif(10,0.1,1))

# Produce the correct plot, with 'automatic' colours.
gp <- ggplot(exData, aes_string(x="Mean"),
             shape=val_shape, alpha=val_alpha)
gp <- gp + geom_point(aes(y=Pos, colour="Max"))
gp <- gp + geom_point(aes(y=Neg, colour="Min"))
gp <- gp + scale_colour_discrete(name = "Legend")
print(gp)

# Produce the correct plot, but not with 'automatic' …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

5
推荐指数
1
解决办法
2182
查看次数

标签 统计

r ×2

ggplot2 ×1

gwidgets ×1