簡體   English   中英

使用tcltk軟件包制作簡單的R GUI

[英]Making simple R GUI with tcltk package

我正在嘗試為我的腳本制作非常簡單的GUI。 簡而言之,問題看起來像這樣:

dataset是數據幀,我想繪制一列作為時間,並使用簡單的GUI選擇下一列/上一列。

dataset <-data.frame(rnorm(10), rnorm(10), rnorm(10))

columnPlot <- function(dataset, i){

plot(dataset[, i])

}

如何使用tcltk調用具有不同ifplot

不是您要求的(與tcltk不相關),但是我建議您看看RStudio的新shiny包裝。

您是否特別喜歡使用tcltk的想法? 我一直在使用gWidgets軟件包進行類似的工作,並取得了一些成功。 據其CRAN網站稱,“ gWidgets提供了獨立於工具包的API,用於構建交互式GUI”。 該軟件包使用tcltk或GTK2,而我一直在使用GTK2部分。 這是帶有用於更改i的旋轉按鈕的GUI的快速示例。 我還為您的函數添加了一些奇特之處,因為您提到要繪制時間序列,因此我將x軸定為時間。

data<-data.frame(rnorm(11),rnorm(11),rnorm(11))

i = 1

fplot <- function(i, data = data){
  library(ggplot2)
  TimeStart <- as.Date('1/1/2012', format = '%m/%d/%Y')
  plotdat <- data.frame(Value = data[ ,i], Time = seq(TimeStart,TimeStart + nrow(data) - 1, by = 1))
  myplot <- ggplot(plotdat, aes(x = Time, y = Value))+
    geom_line()
  print(myplot)
}

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

window <- gwindow ("Time Series Plots", visible = T)
notebook <- gnotebook (cont = window)
group1 <- ggroup(cont = notebook, label = "Choose i", horizontal=F)
ichooser <- gspinbutton(cont = group1, from = 1, to = ncol(data), by = 1, value = i, handler = function(h,...){
  i <<- svalue(h$obj)})
plotbutton <- gbutton('Plot', cont = group1, handler=function(h,...){
  fplot(i, data)})
graphicspane1 <- ggraphics(cont = group1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM