我試圖爲我的腳本製作非常簡單的GUI。簡而言之,問題如下:使用tcltk包製作簡單的R GUI
dataset
是數據框,我想繪製一列作爲時間並使用簡單的GUI來選擇next/previus列。
dataset <-data.frame(rnorm(10), rnorm(10), rnorm(10))
columnPlot <- function(dataset, i){
plot(dataset[, i])
}
如何使用tcltk
調用fplot
不同i
的?
我試圖爲我的腳本製作非常簡單的GUI。簡而言之,問題如下:使用tcltk包製作簡單的R GUI
dataset
是數據框,我想繪製一列作爲時間並使用簡單的GUI來選擇next/previus列。
dataset <-data.frame(rnorm(10), rnorm(10), rnorm(10))
columnPlot <- function(dataset, i){
plot(dataset[, i])
}
如何使用tcltk
調用fplot
不同i
的?
不是你要求的(不是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)
它不'tcltk'有關,我在尋找「基地」的解決方案 – Qbik
下面是一個博客帖子我只是把今天關於制定相似的簡單的GUI的鏈接。它使用GTK而不是tcltk,但檢查出來。你也可以使用'gWidgets'(我使用的包)來做tcltk中的東西。 http://r-norberg.blogspot.com/2012/11/my-first-r-gui.html – rnorberg