SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
Tcl-Tk :

Créer une interface sous R
Présentation groupe FltauR




     Durieux Eric / Eusebio Pascal   14/11/2012
Introduction


    Pourquoi créer des interfaces :

    Distribuer un ensemble de fonctionnalités développées sous R auprès
    d’utilisateurs n’ayant aucune notion de programmation en R.

    Créer des outils permettant de regrouper l’ensemble des possibilités
    offerte par R :
    gestion et manipulation des données – statistique – cartographie …

    Promouvoir R au sein de l’Institut




2      Tcl-Tk : Interface sous R                                           14/11/2012
Introduction



    Utilisation du langage de script TCL (Tool Command Language)
    agrémenté de la bibliothèque de création d’interface graphique Tk,
    combinaison connue sous le nom de Tcl-Tk.

    L’ensemble est implémenté sous R dans la librairie « tcltk » présente
    dans la distribution de base de R

    La librairie « tcltk2 » enrichit la précédente librairie mais ne sera pas
    utilisée dans ce qui suit.




3      Tcl-Tk : Interface sous R                                                14/11/2012
Fenêtres

    Messages Box:

    library(tcltk)
    msg<-tkmessageBox(message="Voulez-vous quitter?",icon="question",type="yesnocancel",default="yes")




    tclvalue(msg)
    [1] "no"




4       Tcl-Tk : Interface sous R                                                               14/11/2012
Fenêtres

    Fenêtre principale:

    tt <- tktoplevel()
    tkwm.geometry(tt,"500x100+0+0")
    tkwm.title(tt,"ANAlyse Bilocalisée pour les Etudes Locales - ANABEL ")
    Tkfocus(tt)




5       Tcl-Tk : Interface sous R                                            14/11/2012
Fenêtres

    Frames:

    Des frames correspondent à des sous-espaces d’une fenêtre principale. On peut donc diviser notre
    fenêtre en autant de sous-écrans nécessaires.

    library(tcltk)
    tt <- tktoplevel()
    tkwm.title(tt,"ma fenêtre ")
    tkwm.geometry(tt,"300x100+0+0")
    frameOverall <- tkframe(tt)
    frameUpper <- tkframe(frameOverall,relief="groove",borderwidth=2)
    tkgrid(tklabel(frameUpper,text="Texte en haut"))
    frameLower <- tkframe(frameOverall,relief="groove",borderwidth=2)
    tkgrid(tklabel(frameLower,text="Texte en bas"))

    tkgrid(frameUpper)
    tkgrid(tklabel(frameOverall,text="Texte entre les frames"))
    tkgrid(frameLower)
    tkgrid(frameOverall)




6        Tcl-Tk : Interface sous R                                                                     14/11/2012
Fenêtres

    Grid:

    tkgrid(frameUpper,frameLower)
    tkgrid(tklabel(frameOverall,text="Texte entre les frames"))
    tkgrid(frameOverall)




    tkgrid(frameUpper,column=0)
    tkgrid(tklabel(frameOverall,text="Texte entre les frames"),column=1)
    tkgrid(frameLower,column=2,row=0)
    tkgrid(frameOverall)




7       Tcl-Tk : Interface sous R                                          14/11/2012
Fenêtres

    Afficher une dataframe:
    require(tcltk)
    tclRequire("Tktable")
    myRarray <- c("Name",""James Wettenhall"","R-Help", "Email","wettenhall@wehi.edu.au","R-
    Help@stat.math.ethz.ch")
    dim(myRarray) <- c(3,2)
    tclarray <- tclArray()
      for (i in (0:2))
       for (j in (0:1))
        tclarray[[i,j]] <- myRarray[i+1,j+1]
    tt<-tktoplevel()
    table1 <- tkwidget(tt,"table",variable=tclarray,rows=3,cols=2,titlerows=1,selectmode="extended"
    ,colwidth=25,background="white")
    tkpack(table1)




8       Tcl-Tk : Interface sous R                                                                     14/11/2012
Fenêtres
    Afficher une image:
    tpropos<<-tktoplevel()
    tkwm.title(tpropos,"A propos...")
    tkfocus(tpropos)
    fpropos<-tkframe(tpropos,relief="groove",borderwidth=2)
    TxCoRi<<-tkframe(tpropos,relief="groove",borderwidth=2)
    Txpropos<<-tkframe(tpropos,relief="groove")
    logo<-read.pnm(paste(d_img,"/logo_pacapsar.pnm",sep=""))
    img_logo<-tkrplot(fpropos,fun=function() {plot(logo)})
    CoRit <- tclVar("Copyright LaCrampe Inc.")
    CoRi<-tklabel(TxCoRi,text=tclvalue(CoRit))
    fontHeading <- tkfont.create(weight="bold",size=12)
    fontHeading2 <- tkfont.create(weight="bold",slant="italic",size=8)
    Txt <- tclVar("Développé par le PSAR n Analyse Territoriale")
    Tx<-tklabel(Txpropos,text=tclvalue(Txt),font=fontHeading)
    fontHeading <- tkfont.create(weight="bold",slant="italic")
    Tx2<-tklabel(Txpropos,text=paste("Version :",ver_ana),font=fontHeading2)
    tkgrid.configure(fpropos,sticky="w")
    tkgrid.configure(CoRi,sticky="w")
    tkgrid.configure(Txpropos,sticky="e")
    tkgrid(fpropos,Txpropos)
    tkgrid(img_logo,Txpropos)
    tkgrid(TxCoRi)
    tkgrid(CoRi)
    tkgrid(Tx)
    tkgrid(Tx2)

9        Tcl-Tk : Interface sous R                                             14/11/2012
Fenêtres

     Afficher un graphique:

     Package « tkrplot »
     tt <- tktoplevel()
     bb<-1
     img <-tkrplot(tt, function() plot(1:20,(1:20)^bb))
     f<-function(...) {
        b <- as.numeric(tclvalue("bb"))
        if (b != bb) {
           bb <<- b
           tkrreplot(img)
        }
     }
     s <- tkscale(tt, command=f, from=0.05, to=2.00, variable="bb",
               showvalue=FALSE, resolution=0.05, orient="horiz")
     tkpack(img,s)



10       Tcl-Tk : Interface sous R                                    14/11/2012
Menus

     Création de menus et sous-menus:

     require(tcltk)
     tt <- tktoplevel()
     topMenu <- tkmenu(tt)
     tkconfigure(tt,menu=topMenu)
     fileMenu <- tkmenu(topMenu,tearoff=FALSE)
     openRecentMenu <- tkmenu(topMenu,tearoff=FALSE)
     tkadd(openRecentMenu,"command",label="Fichier 1",
         command=function() tkmessageBox(message="C'est quoi Fichier 1?",icon="error"))
     tkadd(openRecentMenu,"command",label="Fichier 2",
       command=function() tkmessageBox(message="C'est quoi Fichier 2",icon="error"))
     tkadd(fileMenu,"cascade",label="ouvrir fichier",menu=openRecentMenu)
     tkadd(fileMenu,"command",label="Quit",command=function() tkdestroy(tt))
     tkadd(topMenu,"cascade",label="File",menu=fileMenu)
     tkentryconfigure(openRecentMenu,1, state="disabled")
     tkfocus(tt)




11       Tcl-Tk : Interface sous R                                                        14/11/2012
Les widgets

     Un large choix de widgets sont disponibles:

     Les Edit-Box (tkentry)              Les List-Box (tklistbox)   Les Checkbox (tkcheckbutton)




     Les boutons radio (tkradiobutton)




12        Tcl-Tk : Interface sous R                                                                14/11/2012
Exemples




13     Tcl-Tk : Interface sous R   14/11/2012
Exemples




14     Tcl-Tk : Interface sous R   14/11/2012
Lancement d’une application R / Tcl-Tk

     Pour lancer une application R comprenant une interface graphique (ou
     non..) sans que l’utilisateur n’ait besoin d’ouvrir R au préalable.


     Créer un raccourci sur le bureau avec pour cible :

     "C:Program FilesRR-2.15.1binR.exe"
     "R_PROFILE=D:applicartoAnabelbinprincipal.r" --silent --no-restore
     --slave --internet2




15      Tcl-Tk : Interface sous R                                         14/11/2012
Biblio



     http://http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/



     http://rstat.ouvaton.org/?article19/creer-des-applications-graphiques-avec-r




16      Tcl-Tk : Interface sous R                                                   14/11/2012
Tcl-Tk : Interface sous R




              Merci pour votre attention !




17     Tcl-Tk : Interface sous R             14/11/2012

Weitere ähnliche Inhalte

Was ist angesagt?

Presentation r markdown
Presentation r markdown Presentation r markdown
Presentation r markdown Cdiscount
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4JLilia Sfaxi
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairAlexis Seigneurin
 
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Modern Data Stack France
 
Première approche de cartographie sous R
Première approche de cartographie sous RPremière approche de cartographie sous R
Première approche de cartographie sous RCdiscount
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Normandy JUG
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Mathieu Saby
 
Incorporer du C dans R, créer son package
Incorporer du C dans R, créer son packageIncorporer du C dans R, créer son package
Incorporer du C dans R, créer son packageCdiscount
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia Sfaxi
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...ECAM Brussels Engineering School
 
Bases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGISBases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGISOmar El Kharki
 
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...Mathieu Saby
 
L’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketL’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketStéphane Legrand
 
Zend Framework 2
Zend Framework 2Zend Framework 2
Zend Framework 2epixelic
 
Spark Streaming
Spark StreamingSpark Streaming
Spark StreamingPALO IT
 
A la découverte de redo
A la découverte de redoA la découverte de redo
A la découverte de redoThierry Gayet
 

Was ist angesagt? (20)

Presentation r markdown
Presentation r markdown Presentation r markdown
Presentation r markdown
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
Spark dataframe
Spark dataframeSpark dataframe
Spark dataframe
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclair
 
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
Apache Flink par Bilal Baltagi Paris Spark Meetup Dec 2015
 
Première approche de cartographie sous R
Première approche de cartographie sous RPremière approche de cartographie sous R
Première approche de cartographie sous R
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
 
Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2Nettoyer et transformer ses données avec Openrefine : partie 2
Nettoyer et transformer ses données avec Openrefine : partie 2
 
Incorporer du C dans R, créer son package
Incorporer du C dans R, créer son packageIncorporer du C dans R, créer son package
Incorporer du C dans R, créer son package
 
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
Google Developer Group (GDG) Aix-Marseille #1 (27/08/2018)
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
Bases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGISBases de données Spatiales - POSTGIS
Bases de données Spatiales - POSTGIS
 
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
 
mix-it 2011
mix-it 2011mix-it 2011
mix-it 2011
 
Programmation Fonctionnelle
Programmation FonctionnelleProgrammation Fonctionnelle
Programmation Fonctionnelle
 
L’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketL’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacket
 
Zend Framework 2
Zend Framework 2Zend Framework 2
Zend Framework 2
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
A la découverte de redo
A la découverte de redoA la découverte de redo
A la découverte de redo
 

Andere mochten auch

Parallel R in snow (english after 2nd slide)
Parallel R in snow (english after 2nd slide)Parallel R in snow (english after 2nd slide)
Parallel R in snow (english after 2nd slide)Cdiscount
 
R aux enquêtes de conjoncture
R aux enquêtes de conjonctureR aux enquêtes de conjoncture
R aux enquêtes de conjoncturefrancoismarical
 
Premier pas de web scrapping avec R
Premier pas de  web scrapping avec RPremier pas de  web scrapping avec R
Premier pas de web scrapping avec RCdiscount
 
Dataiku r users group v2
Dataiku   r users group v2Dataiku   r users group v2
Dataiku r users group v2Cdiscount
 
Introduction à la cartographie avec R
Introduction à la cartographie avec RIntroduction à la cartographie avec R
Introduction à la cartographie avec RCdiscount
 
RStudio is good for you
RStudio is good for youRStudio is good for you
RStudio is good for youCdiscount
 
Cartographie avec igraph sous R (Partie 1)
Cartographie avec igraph sous R (Partie 1) Cartographie avec igraph sous R (Partie 1)
Cartographie avec igraph sous R (Partie 1) Cdiscount
 
Cartographie avec igraph sous R (Partie 2)
Cartographie avec igraph sous R (Partie 2)Cartographie avec igraph sous R (Partie 2)
Cartographie avec igraph sous R (Partie 2)Cdiscount
 
Comptabilité Nationale avec R
Comptabilité Nationale avec RComptabilité Nationale avec R
Comptabilité Nationale avec RCdiscount
 
Integrating R, knitr, and LaTeX via RStudio
Integrating R, knitr, and LaTeX via RStudioIntegrating R, knitr, and LaTeX via RStudio
Integrating R, knitr, and LaTeX via RStudioAaron Baggett
 
FLTauR - Construction de modèles de prévision sous r avec le package caret
FLTauR - Construction de modèles de prévision sous r avec le package caretFLTauR - Construction de modèles de prévision sous r avec le package caret
FLTauR - Construction de modèles de prévision sous r avec le package caretjfeudeline
 

Andere mochten auch (16)

R in latex
R in latexR in latex
R in latex
 
Parallel R in snow (english after 2nd slide)
Parallel R in snow (english after 2nd slide)Parallel R in snow (english after 2nd slide)
Parallel R in snow (english after 2nd slide)
 
R aux enquêtes de conjoncture
R aux enquêtes de conjonctureR aux enquêtes de conjoncture
R aux enquêtes de conjoncture
 
Premier pas de web scrapping avec R
Premier pas de  web scrapping avec RPremier pas de  web scrapping avec R
Premier pas de web scrapping avec R
 
Dataiku r users group v2
Dataiku   r users group v2Dataiku   r users group v2
Dataiku r users group v2
 
Introduction à la cartographie avec R
Introduction à la cartographie avec RIntroduction à la cartographie avec R
Introduction à la cartographie avec R
 
HADOOP + R
HADOOP + RHADOOP + R
HADOOP + R
 
Big data with r
Big data with rBig data with r
Big data with r
 
Gur1009
Gur1009Gur1009
Gur1009
 
RStudio is good for you
RStudio is good for youRStudio is good for you
RStudio is good for you
 
Cartographie avec igraph sous R (Partie 1)
Cartographie avec igraph sous R (Partie 1) Cartographie avec igraph sous R (Partie 1)
Cartographie avec igraph sous R (Partie 1)
 
Cartographie avec igraph sous R (Partie 2)
Cartographie avec igraph sous R (Partie 2)Cartographie avec igraph sous R (Partie 2)
Cartographie avec igraph sous R (Partie 2)
 
Comptabilité Nationale avec R
Comptabilité Nationale avec RComptabilité Nationale avec R
Comptabilité Nationale avec R
 
Integrating R, knitr, and LaTeX via RStudio
Integrating R, knitr, and LaTeX via RStudioIntegrating R, knitr, and LaTeX via RStudio
Integrating R, knitr, and LaTeX via RStudio
 
R versur Python
R versur PythonR versur Python
R versur Python
 
FLTauR - Construction de modèles de prévision sous r avec le package caret
FLTauR - Construction de modèles de prévision sous r avec le package caretFLTauR - Construction de modèles de prévision sous r avec le package caret
FLTauR - Construction de modèles de prévision sous r avec le package caret
 

Ähnlich wie Fltau r interface

Distances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueDistances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueFabien Gandon
 
JUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEJUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEOpenCascade
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneMicrosoft
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETLLilia Sfaxi
 
Mat lab1
Mat lab1Mat lab1
Mat lab1fouadDD
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11Microsoft
 
Ingénierie de la performance au sein des mégadonnées
Ingénierie de la performance au sein des mégadonnéesIngénierie de la performance au sein des mégadonnées
Ingénierie de la performance au sein des mégadonnéesDaniel Lemire
 
Messaging temps réel avec Go
Messaging temps réel avec GoMessaging temps réel avec Go
Messaging temps réel avec GoMickaël Rémond
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Microsoft
 
mis
mismis
misISIG
 
Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptxssusera0d0e81
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Parischristophep21
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Microsoft
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 

Ähnlich wie Fltau r interface (20)

Distances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantiqueDistances sémantiques dans des applications utilisant le web sémantique
Distances sémantiques dans des applications utilisant le web sémantique
 
JUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOMEJUS 2011 - Manipulation de champs avec SALOME
JUS 2011 - Manipulation de champs avec SALOME
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ Moderne
 
intro_latex.pdf
intro_latex.pdfintro_latex.pdf
intro_latex.pdf
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Cours de Matlab
Cours de MatlabCours de Matlab
Cours de Matlab
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Développer en natif avec C++11
Développer en natif avec C++11Développer en natif avec C++11
Développer en natif avec C++11
 
Ingénierie de la performance au sein des mégadonnées
Ingénierie de la performance au sein des mégadonnéesIngénierie de la performance au sein des mégadonnées
Ingénierie de la performance au sein des mégadonnées
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
4 si ds1 (algo)
4 si   ds1 (algo)4 si   ds1 (algo)
4 si ds1 (algo)
 
Messaging temps réel avec Go
Messaging temps réel avec GoMessaging temps réel avec Go
Messaging temps réel avec Go
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
mis
mismis
mis
 
Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptx
 
1 introduction
1 introduction1 introduction
1 introduction
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
C++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in ParisC++ 11 - Tech Days 2014 in Paris
C++ 11 - Tech Days 2014 in Paris
 
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 

Mehr von Cdiscount

Paris2012 session4
Paris2012 session4Paris2012 session4
Paris2012 session4Cdiscount
 
Paris2012 session3b
Paris2012 session3bParis2012 session3b
Paris2012 session3bCdiscount
 
Scm prix blé_2012_11_06
Scm prix blé_2012_11_06Scm prix blé_2012_11_06
Scm prix blé_2012_11_06Cdiscount
 
Scm indicateurs prospectifs_2012_11_06
Scm indicateurs prospectifs_2012_11_06Scm indicateurs prospectifs_2012_11_06
Scm indicateurs prospectifs_2012_11_06Cdiscount
 
State Space Model
State Space ModelState Space Model
State Space ModelCdiscount
 
Paris2012 session2
Paris2012 session2Paris2012 session2
Paris2012 session2Cdiscount
 
Paris2012 session1
Paris2012 session1Paris2012 session1
Paris2012 session1Cdiscount
 
Prévisions trafic aérien
Prévisions trafic aérienPrévisions trafic aérien
Prévisions trafic aérienCdiscount
 
Robust sequentiel learning
Robust sequentiel learningRobust sequentiel learning
Robust sequentiel learningCdiscount
 
Prediction of Quantiles by Statistical Learning and Application to GDP Foreca...
Prediction of Quantiles by Statistical Learning and Application to GDP Foreca...Prediction of Quantiles by Statistical Learning and Application to GDP Foreca...
Prediction of Quantiles by Statistical Learning and Application to GDP Foreca...Cdiscount
 
Prévision de consommation électrique avec adaptive GAM
Prévision de consommation électrique avec adaptive GAMPrévision de consommation électrique avec adaptive GAM
Prévision de consommation électrique avec adaptive GAMCdiscount
 
Forecasting GDP profile with an application to French Business Surveys
Forecasting GDP profile with an application to French Business SurveysForecasting GDP profile with an application to French Business Surveys
Forecasting GDP profile with an application to French Business SurveysCdiscount
 
Prediction in dynamic Graphs
Prediction in dynamic GraphsPrediction in dynamic Graphs
Prediction in dynamic GraphsCdiscount
 

Mehr von Cdiscount (14)

Paris2012 session4
Paris2012 session4Paris2012 session4
Paris2012 session4
 
Paris2012 session3b
Paris2012 session3bParis2012 session3b
Paris2012 session3b
 
Scm prix blé_2012_11_06
Scm prix blé_2012_11_06Scm prix blé_2012_11_06
Scm prix blé_2012_11_06
 
Scm indicateurs prospectifs_2012_11_06
Scm indicateurs prospectifs_2012_11_06Scm indicateurs prospectifs_2012_11_06
Scm indicateurs prospectifs_2012_11_06
 
Scm risques
Scm risquesScm risques
Scm risques
 
State Space Model
State Space ModelState Space Model
State Space Model
 
Paris2012 session2
Paris2012 session2Paris2012 session2
Paris2012 session2
 
Paris2012 session1
Paris2012 session1Paris2012 session1
Paris2012 session1
 
Prévisions trafic aérien
Prévisions trafic aérienPrévisions trafic aérien
Prévisions trafic aérien
 
Robust sequentiel learning
Robust sequentiel learningRobust sequentiel learning
Robust sequentiel learning
 
Prediction of Quantiles by Statistical Learning and Application to GDP Foreca...
Prediction of Quantiles by Statistical Learning and Application to GDP Foreca...Prediction of Quantiles by Statistical Learning and Application to GDP Foreca...
Prediction of Quantiles by Statistical Learning and Application to GDP Foreca...
 
Prévision de consommation électrique avec adaptive GAM
Prévision de consommation électrique avec adaptive GAMPrévision de consommation électrique avec adaptive GAM
Prévision de consommation électrique avec adaptive GAM
 
Forecasting GDP profile with an application to French Business Surveys
Forecasting GDP profile with an application to French Business SurveysForecasting GDP profile with an application to French Business Surveys
Forecasting GDP profile with an application to French Business Surveys
 
Prediction in dynamic Graphs
Prediction in dynamic GraphsPrediction in dynamic Graphs
Prediction in dynamic Graphs
 

Fltau r interface

  • 1. Tcl-Tk : Créer une interface sous R Présentation groupe FltauR Durieux Eric / Eusebio Pascal 14/11/2012
  • 2. Introduction Pourquoi créer des interfaces : Distribuer un ensemble de fonctionnalités développées sous R auprès d’utilisateurs n’ayant aucune notion de programmation en R. Créer des outils permettant de regrouper l’ensemble des possibilités offerte par R : gestion et manipulation des données – statistique – cartographie … Promouvoir R au sein de l’Institut 2 Tcl-Tk : Interface sous R 14/11/2012
  • 3. Introduction Utilisation du langage de script TCL (Tool Command Language) agrémenté de la bibliothèque de création d’interface graphique Tk, combinaison connue sous le nom de Tcl-Tk. L’ensemble est implémenté sous R dans la librairie « tcltk » présente dans la distribution de base de R La librairie « tcltk2 » enrichit la précédente librairie mais ne sera pas utilisée dans ce qui suit. 3 Tcl-Tk : Interface sous R 14/11/2012
  • 4. Fenêtres Messages Box: library(tcltk) msg<-tkmessageBox(message="Voulez-vous quitter?",icon="question",type="yesnocancel",default="yes") tclvalue(msg) [1] "no" 4 Tcl-Tk : Interface sous R 14/11/2012
  • 5. Fenêtres Fenêtre principale: tt <- tktoplevel() tkwm.geometry(tt,"500x100+0+0") tkwm.title(tt,"ANAlyse Bilocalisée pour les Etudes Locales - ANABEL ") Tkfocus(tt) 5 Tcl-Tk : Interface sous R 14/11/2012
  • 6. Fenêtres Frames: Des frames correspondent à des sous-espaces d’une fenêtre principale. On peut donc diviser notre fenêtre en autant de sous-écrans nécessaires. library(tcltk) tt <- tktoplevel() tkwm.title(tt,"ma fenêtre ") tkwm.geometry(tt,"300x100+0+0") frameOverall <- tkframe(tt) frameUpper <- tkframe(frameOverall,relief="groove",borderwidth=2) tkgrid(tklabel(frameUpper,text="Texte en haut")) frameLower <- tkframe(frameOverall,relief="groove",borderwidth=2) tkgrid(tklabel(frameLower,text="Texte en bas")) tkgrid(frameUpper) tkgrid(tklabel(frameOverall,text="Texte entre les frames")) tkgrid(frameLower) tkgrid(frameOverall) 6 Tcl-Tk : Interface sous R 14/11/2012
  • 7. Fenêtres Grid: tkgrid(frameUpper,frameLower) tkgrid(tklabel(frameOverall,text="Texte entre les frames")) tkgrid(frameOverall) tkgrid(frameUpper,column=0) tkgrid(tklabel(frameOverall,text="Texte entre les frames"),column=1) tkgrid(frameLower,column=2,row=0) tkgrid(frameOverall) 7 Tcl-Tk : Interface sous R 14/11/2012
  • 8. Fenêtres Afficher une dataframe: require(tcltk) tclRequire("Tktable") myRarray <- c("Name",""James Wettenhall"","R-Help", "Email","wettenhall@wehi.edu.au","R- Help@stat.math.ethz.ch") dim(myRarray) <- c(3,2) tclarray <- tclArray() for (i in (0:2)) for (j in (0:1)) tclarray[[i,j]] <- myRarray[i+1,j+1] tt<-tktoplevel() table1 <- tkwidget(tt,"table",variable=tclarray,rows=3,cols=2,titlerows=1,selectmode="extended" ,colwidth=25,background="white") tkpack(table1) 8 Tcl-Tk : Interface sous R 14/11/2012
  • 9. Fenêtres Afficher une image: tpropos<<-tktoplevel() tkwm.title(tpropos,"A propos...") tkfocus(tpropos) fpropos<-tkframe(tpropos,relief="groove",borderwidth=2) TxCoRi<<-tkframe(tpropos,relief="groove",borderwidth=2) Txpropos<<-tkframe(tpropos,relief="groove") logo<-read.pnm(paste(d_img,"/logo_pacapsar.pnm",sep="")) img_logo<-tkrplot(fpropos,fun=function() {plot(logo)}) CoRit <- tclVar("Copyright LaCrampe Inc.") CoRi<-tklabel(TxCoRi,text=tclvalue(CoRit)) fontHeading <- tkfont.create(weight="bold",size=12) fontHeading2 <- tkfont.create(weight="bold",slant="italic",size=8) Txt <- tclVar("Développé par le PSAR n Analyse Territoriale") Tx<-tklabel(Txpropos,text=tclvalue(Txt),font=fontHeading) fontHeading <- tkfont.create(weight="bold",slant="italic") Tx2<-tklabel(Txpropos,text=paste("Version :",ver_ana),font=fontHeading2) tkgrid.configure(fpropos,sticky="w") tkgrid.configure(CoRi,sticky="w") tkgrid.configure(Txpropos,sticky="e") tkgrid(fpropos,Txpropos) tkgrid(img_logo,Txpropos) tkgrid(TxCoRi) tkgrid(CoRi) tkgrid(Tx) tkgrid(Tx2) 9 Tcl-Tk : Interface sous R 14/11/2012
  • 10. Fenêtres Afficher un graphique: Package « tkrplot » tt <- tktoplevel() bb<-1 img <-tkrplot(tt, function() plot(1:20,(1:20)^bb)) f<-function(...) { b <- as.numeric(tclvalue("bb")) if (b != bb) { bb <<- b tkrreplot(img) } } s <- tkscale(tt, command=f, from=0.05, to=2.00, variable="bb", showvalue=FALSE, resolution=0.05, orient="horiz") tkpack(img,s) 10 Tcl-Tk : Interface sous R 14/11/2012
  • 11. Menus Création de menus et sous-menus: require(tcltk) tt <- tktoplevel() topMenu <- tkmenu(tt) tkconfigure(tt,menu=topMenu) fileMenu <- tkmenu(topMenu,tearoff=FALSE) openRecentMenu <- tkmenu(topMenu,tearoff=FALSE) tkadd(openRecentMenu,"command",label="Fichier 1", command=function() tkmessageBox(message="C'est quoi Fichier 1?",icon="error")) tkadd(openRecentMenu,"command",label="Fichier 2", command=function() tkmessageBox(message="C'est quoi Fichier 2",icon="error")) tkadd(fileMenu,"cascade",label="ouvrir fichier",menu=openRecentMenu) tkadd(fileMenu,"command",label="Quit",command=function() tkdestroy(tt)) tkadd(topMenu,"cascade",label="File",menu=fileMenu) tkentryconfigure(openRecentMenu,1, state="disabled") tkfocus(tt) 11 Tcl-Tk : Interface sous R 14/11/2012
  • 12. Les widgets Un large choix de widgets sont disponibles: Les Edit-Box (tkentry) Les List-Box (tklistbox) Les Checkbox (tkcheckbutton) Les boutons radio (tkradiobutton) 12 Tcl-Tk : Interface sous R 14/11/2012
  • 13. Exemples 13 Tcl-Tk : Interface sous R 14/11/2012
  • 14. Exemples 14 Tcl-Tk : Interface sous R 14/11/2012
  • 15. Lancement d’une application R / Tcl-Tk Pour lancer une application R comprenant une interface graphique (ou non..) sans que l’utilisateur n’ait besoin d’ouvrir R au préalable. Créer un raccourci sur le bureau avec pour cible : "C:Program FilesRR-2.15.1binR.exe" "R_PROFILE=D:applicartoAnabelbinprincipal.r" --silent --no-restore --slave --internet2 15 Tcl-Tk : Interface sous R 14/11/2012
  • 16. Biblio http://http://bioinf.wehi.edu.au/~wettenhall/RTclTkExamples/ http://rstat.ouvaton.org/?article19/creer-des-applications-graphiques-avec-r 16 Tcl-Tk : Interface sous R 14/11/2012
  • 17. Tcl-Tk : Interface sous R Merci pour votre attention ! 17 Tcl-Tk : Interface sous R 14/11/2012