diff --git a/README.md b/README.md index b2fe1fd2b1266adc149d80c824c28211c35db20d..3cd5f3079d597b96146127a4931d4ec0604fb827 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,153 @@ Explorando Interfaces Gráficas com o R ====================================== -Eduardo E. Ribeiro Jr, PET-EstatÃstica UFPR +[Eduardo E. Ribeiro Jr](https://gitlab.c3sl.ufpr.br/u/eerj12), PET-EstatÃstica UFPR [Prof. Walmes M. Zeviani](http://www.leg.ufpr.br/~walmes/), LEG UFPR -O R é um programa para computação estatÃstica e gráficos ... TODO +O R é um programa para computação estatÃstica e gráficos muito utilizado +por estatÃsticos e cientistas de dados, possivelmente o mais +utilizado. Seu uso é essencialmente via _CLI (Command Line Interface)_, +com resultados textuais exibidos em um _console_ e gráficos em uma +janela do sistema operacional. Porém, utilizado desta forma, o programa +desencoraja usuários não acostumados com programação e os que tem +familiaridade ainda obtém resultados estáticos. -Nesse Curso consideramos pacotes do R para produzir ... TODO +Nesse material consideramos ferramentas em R para produzir resultados de +forma interativa ou não-estática. Estes resultados se caracterizam pela +interação proporcionada ao usuário, quando o objetivo é a criação de +interfaces com _widgets_ (controladores como botões, deslizadores etc.) +e pelo dinamismo dos gráficos, quando o objetivo é apenas +visualização. Em nossas experiências o uso potencial destas ferramentas +de dá como: -O pacote [`animation`] serve para gerar animações em diversos formatos, -como *gif* e animações em *javascript* dentro de páginas web. O [`rgl`] -permite explorar o espaço tridimensional .. O pacote [`googleVis`] faz -gráficos da galeria Google Charts a partir de objetos do R. Com os -pacotes [`rpanel`] e [`gWdigets`] é possÃvel fazer interfaces gráficas e -até mini aplicativos baseados em Tcl/Tk ou Gtk+. Por fim, o pacote -[`shiny`] possibilita construir aplicações Web com o R baseadas em -*javascript*. + * **Instrumento de ensino:** Muitos conceitos e resultados em + EstatÃstica, são apresentados nos cursos de graduação e pós-graduação + a partir de axiomas e teoremas, porém muitos deles também podem ser + visualizados de forma gráfica o que acelera a compreensão e + assimilação do conteúdo; -O que todos esses pacotes têm em comum é permitir uma visualização -dinâmica e/ou interativas. Com eles podemos produzir gráficos que exibem -uma sequência de estados - como os gifs - com os quais podemos -rotacionar - rgl - TODO + * **Construção de aplicativos:** A elaboração de mini-aplicativos + principalmente para coleta de dados torna o trabalho, inerente a um + experimento planejado, menos árduo no sentido de que não se é mais + necessário a transferência dos resultados do papel para o computador; -Tais recursos interativos são usados para ensino de estatÃstica e -exibição de dados ... TODO + * **Exibição de relatórios:** Relatórios técnicos em EstatÃstica ainda + tem a caracterÃstica estática, geralmente os resultados obtidos são + apresentados no formato PDF. Porém com as ferramentas apresentadas + podemos exibir nossos resultados de forma _web_ interativa, onde o + leitor pode até trocar os valores que são utilizados para gerar os + resultados e ter uma visão mais ampla do trabalho. -Os arquivos `Rmd` precisam ser compilados com `markdown::render()` ou -`markdown::run()`. + * **Interfaces para pacotes:** Muitas bibliotecas do R, chamadas de + pacotes já utilizam os recursos gráficos para criar interfaces + interativas. No contexto de pacotes R essas interfaces objetivam + principalmente a explicação funções exibindo, interativamente, a + influências dos argumentos da função sobre os resultados. -As aplicações Shiny estão ativas no servidor RStudio/Shiny do LEG/PET: -<http://shiny.leg.ufpr.br/iguir/>. + +Este repositório explora sete pacotes R, que possibilitam alguma forma +de interação com o usuário. Os pacotes abordados que se encaixam na +geração de gráficos dinâmicos são: [`animation`] que serve para gerar +animações em diversos formatos, como *gif* e animações em *javascript* +dentro de páginas web; [`rgl`] que permite explorar o espaço +tridimensional também com a possibilidade de geração de _gifs_ e páginas +_web_ com _WebGL_; [`googleVis`] proporcionando a elaboração de gráficos +da galeria Google Charts a partir de objetos do R;e [`rCharts`] pacote +ainda em desenvolvimento que possibilita criar, customizar e publicar +visualizações interativas _JavaScript_ com o R, utilizando a sintaxe +_lattice_. Para criação de interfaces com _widgets_ consideramos os +pacotes [`rpanel`] e [`gWdigets`], com eles é possÃvel fazer interfaces +gráficas e até mini aplicativos baseados em Tcl/Tk ou Gtk+. Por fim, +nesta categoria, o pacote [`shiny`] que possibilita construir aplicações +Web com o R baseadas em *javascript* também ganha destaca no nosso +material. + +É importante destacar que os arquivos com nome `package.Rmd`, onde +`package` pode assumir `animation`, `googleVis`, `gWidgets`, `rCharts`, +`rgl` e `rpanel` precisam ser compilados para que gerem os respectivos +arquivos `.html`. Essa compilação pode ser realizada com a função +`rmarkdown::render()`. Os slides do material contém _links_ para os +arquivos resultados dessa compilação. + +As aplicações Shiny produzidas para este projeto estão ativas no +servidor RStudio/Shiny do LEG/PET: <http://shiny.leg.ufpr.br/iguir/>. **** ## Organização do repositório -TODO +Como organização do material produzido adotamos no repositório um +diretório dedicado a cada pacote abordado. Cada repositório tem suas +particularidades devido à s particularidades dos pacotes, porém, com +exceção do `shiny/`, temos uma galeria com exemplos para toda biblioteca +cujo nomeamos de `package.Rmd`, este arquivo `.Rmd` deve ser compilado +conforme procedimento descrito anteriormente. Também dedicamos um +diretório para a criação dos slides utilizados em cursos, os slides +são elaborados em LaTeX e cada pacote ganhou um arquivo para que a +elaboração pudesse ser realizada de forma paralela. + +A estrutura geral dos diretórios dentro deste repositório é representada +pelo diagrama abaixo. + +``` +. +├── README.md ## Visão geral do projeto +├── plano.org ## Plano de trabalho adotado +├── galery.css ## Arquivo de estilo das galerias +├── animation +│  ├── animation.Rmd ## Galeria de exemplos +│  ├── anima.R ## Animações elaboradas +│  └── ... +├── googleVis +│  ├── googleVis.Rmd ## Galeria de exemplos +│  └── googleVis.html ## Galeria compilada +├── gWidgets +│  ├── gWidgets.Rmd ## Galeria de exemplos +│  ├── gifs +│  │  ├── interface.gif ## Gif das interfaces elaboradas +│  │  └── ... +│  ├── interfaces.R ## Interfaces elaboradas +│  └── ... +├── rCharts +│  ├── rCharts.Rmd ## Galeria de exemplos +│  └── pajero-dakar.csv ## Dataset utilizado +├── rgl +│  ├── rgl.Rmd ## Galeria de exemplos +│  └── setup.R ## Necessário geração do arquivo com _WebGL_ +├── rpanel +│  ├── rpanel.Rmd ## Galeria de exemplos +│  ├── gifs +│  │  ├── interface.gif ## Gif das interfaces elaboradas +│  │  └── ... +│  ├── interfaces.R ## Interfaces elaboradas +│  └── ... +├── shiny +│  ├── shiny-pres.Rmd ## Apresentação detalhada do pacote +│  ├── shiny-pres.html ## Apresentação compilada +│  ├── images ## Imagens utilizadas na apresentação +│  │  ├── figures.svg +│  │  └── ... +│  ├── aplicação ## Arquivos necessários para a aplicação shiny +│  │  ├── ui.R +│  │  ├── server.R +│  │  └── aux_files.[dat, Rnw, md, ...] +│  ├── insertTemplate ## Shell script para inserção do cabeçalho iguir2 +│  ├── shinyApp ## Shell script para criação automática de apps +│  └── template.R ## Cabeçalho das interfaces +└── slides + ├── images + │  ├── files.[png, jpg, gif] + │  └── ... + ├── secoes.tex ## Seções dos slides + ├── slides.tex ## Agregação das seções em arquivo único + ├── slides.pdf ## Resultado da compilação dos slides + └── tikz + ├── imagem.pgf ## Código da imagem em Tikz + ├── imagem.pdf ## Compilação do Tikz + └── ... + +48 directories, 300 files + +``` **** ## Como citar esse material @@ -49,3 +162,4 @@ TODO [`rpanel`]: https://cran.r-project.org/web/packages/rpanel/index.html [`gWdigets`]: https://cran.r-project.org/web/packages/gWidgets/index.html [`shiny`]: http://shiny.rstudio.com/ +[`rCharts`]: http://ramnathv.github.io/rCharts/