Enviar búsqueda
Cargar
RGtk2入門
•
4 recomendaciones
•
4,363 vistas
Masahiro Hayashi
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 29
Descargar ahora
Descargar para leer sin conexión
Recomendados
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
Tsuyoshi Yamamoto
C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~
Fujio Kojima
Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
takesako
Qt Creator を拡張する
Qt Creator を拡張する
Takumi Asaki
.NETラボ 勉強会 2021年1月 「C#で機械学習」
.NETラボ 勉強会 2021年1月 「C#で機械学習」
Fujio Kojima
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
Toshi Harada
Rakuten tech conf
Rakuten tech conf
Koichi Fujikawa
Cloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
Koichi Fujikawa
Recomendados
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
「Grails-1.1を斬る!〜Grails-1.1からのチーム開発〜」
Tsuyoshi Yamamoto
C#勉強会 ~ C#9の新機能 ~
C#勉強会 ~ C#9の新機能 ~
Fujio Kojima
Node.js - JavaScript Thread Programming
Node.js - JavaScript Thread Programming
takesako
Qt Creator を拡張する
Qt Creator を拡張する
Takumi Asaki
.NETラボ 勉強会 2021年1月 「C#で機械学習」
.NETラボ 勉強会 2021年1月 「C#で機械学習」
Fujio Kojima
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
Toshi Harada
Rakuten tech conf
Rakuten tech conf
Koichi Fujikawa
Cloud computing competition by Hapyrus
Cloud computing competition by Hapyrus
Koichi Fujikawa
オレオレR-GUIを作りたい
オレオレR-GUIを作りたい
Masahiro Hayashi
はじめての「R」
はじめての「R」
Masahiro Hayashi
平面グラフ
平面グラフ
yutaka1999
3次元のデータをグラフにする(Tokyo.R#17)
3次元のデータをグラフにする(Tokyo.R#17)
Takumi Tsutaya
はじめてでもわかるデータ入出力
はじめてでもわかるデータ入出力
Masahiro Hayashi
Rデータフレーム自由自在
Rデータフレーム自由自在
Takeshi Arabiki
Rでピボットテーブル
Rでピボットテーブル
Yohei Sato
Japan.R #2 Introduction to R
Japan.R #2 Introduction to R
SAKAUE, Tatsuya
data.tableパッケージで大規模データをサクッと処理する
data.tableパッケージで大規模データをサクッと処理する
Shintaro Fukushima
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
Takuya Akiba
機械学習を理解するための数学テクニック勉強会 Lagrange 未定乗数法
機械学習を理解するための数学テクニック勉強会 Lagrange 未定乗数法
OWL.learn
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
Shintaro Fukushima
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
OWL.learn
Feature Selection with R / in JP
Feature Selection with R / in JP
Sercan Ahi
Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)
Takashi Yamane
Rstudio事始め
Rstudio事始め
Takashi Yamane
ランダムフォレスト
ランダムフォレスト
Kinki University
Deep parking
Deep parking
Shintaro Shiba
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
Koichi Hamada
Jetpack Workshop
Jetpack Workshop
Hideaki Miyake
Ajax 応用
Ajax 応用
Katsuyuki Seino
ジャパネットQB GPars
ジャパネットQB GPars
Takahiro Sugiura
Más contenido relacionado
Destacado
オレオレR-GUIを作りたい
オレオレR-GUIを作りたい
Masahiro Hayashi
はじめての「R」
はじめての「R」
Masahiro Hayashi
平面グラフ
平面グラフ
yutaka1999
3次元のデータをグラフにする(Tokyo.R#17)
3次元のデータをグラフにする(Tokyo.R#17)
Takumi Tsutaya
はじめてでもわかるデータ入出力
はじめてでもわかるデータ入出力
Masahiro Hayashi
Rデータフレーム自由自在
Rデータフレーム自由自在
Takeshi Arabiki
Rでピボットテーブル
Rでピボットテーブル
Yohei Sato
Japan.R #2 Introduction to R
Japan.R #2 Introduction to R
SAKAUE, Tatsuya
data.tableパッケージで大規模データをサクッと処理する
data.tableパッケージで大規模データをサクッと処理する
Shintaro Fukushima
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
Takuya Akiba
機械学習を理解するための数学テクニック勉強会 Lagrange 未定乗数法
機械学習を理解するための数学テクニック勉強会 Lagrange 未定乗数法
OWL.learn
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
Shintaro Fukushima
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
OWL.learn
Feature Selection with R / in JP
Feature Selection with R / in JP
Sercan Ahi
Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)
Takashi Yamane
Rstudio事始め
Rstudio事始め
Takashi Yamane
ランダムフォレスト
ランダムフォレスト
Kinki University
Deep parking
Deep parking
Shintaro Shiba
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
Koichi Hamada
Destacado
(19)
オレオレR-GUIを作りたい
オレオレR-GUIを作りたい
はじめての「R」
はじめての「R」
平面グラフ
平面グラフ
3次元のデータをグラフにする(Tokyo.R#17)
3次元のデータをグラフにする(Tokyo.R#17)
はじめてでもわかるデータ入出力
はじめてでもわかるデータ入出力
Rデータフレーム自由自在
Rデータフレーム自由自在
Rでピボットテーブル
Rでピボットテーブル
Japan.R #2 Introduction to R
Japan.R #2 Introduction to R
data.tableパッケージで大規模データをサクッと処理する
data.tableパッケージで大規模データをサクッと処理する
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
機械学習を理解するための数学テクニック勉強会 Lagrange 未定乗数法
機械学習を理解するための数学テクニック勉強会 Lagrange 未定乗数法
Rにおける大規模データ解析(第10回TokyoWebMining)
Rにおける大規模データ解析(第10回TokyoWebMining)
初心者のためのRとRStudio入門 vol.2
初心者のためのRとRStudio入門 vol.2
Feature Selection with R / in JP
Feature Selection with R / in JP
Rの導入とRStudio事始め(改訂版)
Rの導入とRStudio事始め(改訂版)
Rstudio事始め
Rstudio事始め
ランダムフォレスト
ランダムフォレスト
Deep parking
Deep parking
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
「はじめてでもわかる RandomForest 入門-集団学習による分類・予測 -」 -第7回データマイニング+WEB勉強会@東京
Similar a RGtk2入門
Jetpack Workshop
Jetpack Workshop
Hideaki Miyake
Ajax 応用
Ajax 応用
Katsuyuki Seino
ジャパネットQB GPars
ジャパネットQB GPars
Takahiro Sugiura
Try Jetpack
Try Jetpack
Hideaki Miyake
Scala on Hadoop
Scala on Hadoop
Shinji Tanaka
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Uehara Junji
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
Koichi Fujikawa
PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join Interface
Kohei KaiGai
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
Gws 20130315 gradle_handson
Gws 20130315 gradle_handson
Nobuhiro Sue
Angular.jsについてちょっとしゃべる
Angular.jsについてちょっとしゃべる
Masashi Haga
明日から使える Java SE 7
明日から使える Java SE 7
Yuichi Sakuraba
第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016
kyoto university
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Toshiyuki Ienaga
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
Yasunori Horikoshi
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
kimukou_26 Kimukou
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposium
Tomohiro Kumagai
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
Shigeru Hanada
20170127 JAWS HPC-UG#8
20170127 JAWS HPC-UG#8
Kohei KaiGai
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Akira Shimosako
Similar a RGtk2入門
(20)
Jetpack Workshop
Jetpack Workshop
Ajax 応用
Ajax 応用
ジャパネットQB GPars
ジャパネットQB GPars
Try Jetpack
Try Jetpack
Scala on Hadoop
Scala on Hadoop
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
PostgreSQL v9.5の新機能~CustomScan/Join Interface
PostgreSQL v9.5の新機能~CustomScan/Join Interface
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
Gws 20130315 gradle_handson
Gws 20130315 gradle_handson
Angular.jsについてちょっとしゃべる
Angular.jsについてちょっとしゃべる
明日から使える Java SE 7
明日から使える Java SE 7
第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposium
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
20170127 JAWS HPC-UG#8
20170127 JAWS HPC-UG#8
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
Más de Masahiro Hayashi
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
Masahiro Hayashi
Rzパッケージの紹介
Rzパッケージの紹介
Masahiro Hayashi
重回帰職人の朝は早い
重回帰職人の朝は早い
Masahiro Hayashi
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)
Masahiro Hayashi
Rzパッケージ―spssのようなデータ管理インターフェイス
Rzパッケージ―spssのようなデータ管理インターフェイス
Masahiro Hayashi
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
Masahiro Hayashi
Más de Masahiro Hayashi
(6)
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
Rzパッケージの紹介
Rzパッケージの紹介
重回帰職人の朝は早い
重回帰職人の朝は早い
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)
Rzパッケージ―spssのようなデータ管理インターフェイス
Rzパッケージ―spssのようなデータ管理インターフェイス
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
RGtk2入門
1.
RGtk2入門 ―Rで作るGUIアプリ― 大阪大学人間科学研究科
博士後期課程 林真広(@phosphor_m)
2.
自己紹介 社会学 メディア論,インターネット研究
主に質問紙調査(アンケート)のデータを分析していま す Osaka.Rやってます
3.
今日の目的 RGtk2で手軽にGUIを作る RのGUIをもっと充実させたい
Rはプログラミングができない人も使っている • 初心者用デモ • 繰り返しの作業をマウスで誰でもできるように もっと手軽にグラフを描きたい • グラフィックスを対話的に調整
4.
Rで使えるGUIツールキット tcltk
組み込みパッケージ 手軽だが低機能 rJava Rからjavaを使うためのパッケージ javaの知識が必要 RGtk2 高機能 基本的にはRの知識だけで大丈夫
5.
GTK+とは? GTK+ (The
GIMP Toolkit) はGIMPの実装のため に開発されたGUIツールキットで、Gimp Tool Kitの 略である。オープンソースのGUIツールキットの中での 品質の良さに注目され、GNOMEデスクトップ環境のツー ルキットとして採用される。(Wikipediaより) RGtk2はGTK+2をR上で使うためのパッケージ
6.
RGtk2を使ったパッケージ RGtk2DfEdit pmg
rattle memiscGUI(作ってます!)
7.
RGtk2のインストール RGtk2パッケージをインストール library(RGtk2)
「GTKがない」というエラーとともに,Gtkをインストール するかどうか尋ねるダイアログが出る 「Install GTK+」を選ぶとダウンロード&インストール が始まる インストール終了後,再起動
8.
Hello, world! lab <-
gtkLabelNew("Hello, world!") win <- gtkWindowNew() gtkWindowSetTitle(win, "Test") gtkContainerAdd(win, lab)
9.
Widgetのクラス lab <- gtkLabelNew("Hello,
world!") win <- gtkWindowNew() gtkWindowSetTitle(win, "Test") gtkContainerAdd(win, lab) 下線がクラス,斜体がメソッド クラスの継承あり GtkWindowはGtkContainerの下位クラス
10.
GtkWindowクラスの階層 GObject
GInitiallyUnowned • GtkObject • GtkWidget • GtkContainer • GtkBin • GtkWindow 探している機能が,上位のクラスのメソッドな場 合がある
11.
簡略記法 lab <- gtkLabelNew("Hello,
world!") win <- gtkWindowNew() win$setTitle("Test") win$add(lab) 「object$method」という簡略記法もある 第1引数は省略する キャメルケース可
12.
プロパティへのアクセス win <- gtkWindowNew() win["title"]
<- "Test" # win$setTitle("Test") と同じ オブジェクトにはプロパティがある リストのようにアクセスできる names(object$getPropInfo()) でどんなプロパティ があるかわかる 詳細はGtkのリファレンスで(RGtk2のヘルプは未完成)
13.
Hello, World! 2 win
<- gtkWindowNew() btn <- gtkButtonNew() win$setDefaultSize(50, 50) btn$setLabel("OK") win$add(btn) gSignalConnect(btn,"clicked", quote(cat("Hello, world!"))) ボタンを押すと”Hello, World!”がコンソールに表示さ れる
14.
ボタンに機能を付ける gSignalConnect(btn,"clicked",
quote(cat("Hello, world!"))) 第1引数は機能を付けるオブジェクト 第2引数("clicked")はオブジェクトが起こすイベント 第3引数はイベントが起こったときに実行される関数 (または関数呼び出し)
15.
シグナル(signal)
GTK+のリファレンスマニュアルより イベントが起こるとシグナルが発せられる シグナルと処理が結び付けられていた場合,処理を実行する コールバック関数(イベントが起きたときに実行される処理)に 渡される引数が重要 この場合,シグナルを発したオブジェクト(gtkButton)と任意のデータ
16.
コールバック関数の作り方 onClicked <- function(obj,
data){ sprintf("Button[%s] is %s", obj$getLabel(), data) } gSignalConnect(btn,"clicked", onClicked, data="is clicked!") 第4引数(data)は任意のデータ 引数としてlistを渡せば,コールバック関数に好きな だけデータを渡せる
17.
実例:グラフィックスパラメータを変更する
アプリケーション parが覚えきれない ウィンドウ パラメータ名 値 こんなGUIがあれば便利かも parBox(“パラメータ名”)で,Windowの内部に配置す るWidgetを返す関数を作る
18.
Widgetの作成 parBox <- function(par){
#ここから関数定義 label <- gtkLabelNew(par) entry <- gtkEntryNew() hbox <- gtkHBoxNew() hbox$packStart(label) hbox$packStart(entry) # 引数parは,グラフィックスパラメータ名 # まず,必要な部品(widget)を用意する
19.
グラフィックスパラメータの処理 val <- par()[[par]]
# グラフィックスパラメータの値取得 if (is.character(val)) # 値が文字列かどうかで分岐 val <- paste("¥"", val, "¥"" , sep="", collapse=",") else val <- paste(as.character(val), sep="", collapse=",") entry$setText(val) # 値をgtkEntryにセット gSignalConnect(entry, "activate", onEntryActivated, par) # entry内でエンターを押したときの処理 return(hbox) } # 関数定義終わり
20.
コールバック関数 onEntryActivated <- function(obj,
label){ text <- obj$getText() text <- iconv(text, "UTF-8", localeToCharset()[1]) # widget内で文字列はUTF-8なので, # ロケールを取得してエンコード変換 text <- sprintf("par(%s=c(%s))", label, text) print(text) eval(parse(text=text)) }
21.
とりあえず実行 hbox <- parBox("mfrow") win
<- gtkWindowNew(show=FALSE) win$add(hbox) win$showAll()
22.
全グラフィックスパラメータ一覧&変更 parGUI <- function(){
par.names <- names(par()) hboxes <- lapply(par.names, parBox) vbox <- gtkVBoxNew() lapply(hboxes, vbox$packStart) sw <- gtkScrolledWindowNew() sw$addWithViewport(vbox) win <- gtkWindowNew(show=FALSE) win$add(sw) win$showAll() }
23.
実行 parGUI()
24.
レイアウト用Widgetの種類(1) win
<- gtkWindowNew(show=FALSE) note <- gtkNotebookNew() # タブインターフェース paned <- gtkVPanedNew() # 二分割レイアウト hbox <- gtkHBoxNew() # widgetを横に詰め込む vbox <- gtkVBoxNew() # widgetを縦に詰め込む label <- gtkLabelNew("Label") entry <- gtkEntryNew() entry$setText("Entry") btn1 <- gtkButtonNewWithLabel("Button1") btn2 <- gtkButtonNewWithLabel("Button2")
25.
レイアウト用Widgetの種類(2) win$add(note) note$appendPage(paned) paned$add1(vbox) paned$add2(hbox) vbox$packStart(label) vbox$packStart(entry) hbox$packStart(btn1) hbox$packStart(btn2) win$showAll()
26.
レイアウト用Widgetの種類(3)
gtkNotebook gtkVBox gtkHBox gtkVPaned
27.
参考になるもの(1) RGtk2のチュートリアルはlibrary内のPDF
ビニエットにはなっていない クラスのヘルプは未完成だが有用 ?GtkButton などとすると,クラスのヘルプが見られる クラスのヘルプにはそのクラスのメソッド一覧,ヒエラルキー, 簡単なexampleがなどある 最後尾に本家GTK+のリファレンスマニュアルへのリンク • signalとpropertyは本家でもRGtk2でも同じなので,とても有用
28.
参考になるもの(2) 本家のwidget一覧
http://library.gnome.org/devel/gtk/unstable/ch02.html Ruby/GTK2 チュートリアル http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut Ruby,Python,PHPのGTK+のサンプル・文書は,これら の言語を知らなくても役に立つ RGtk2の資料は皆無に等しいので,他言語でのノウハウを流用 慣れてきたら,RGtk2DfEdit(RGtk2を使ったパッケージ)の ソースを読むとよい
29.
まとめ 簡単な機能のものはすぐ作れる 組み合わせていけば多機能に
資料は,他言語のものならたくさんある ggplot2のGUIとかどうでしょう?
Descargar ahora