ScriptRplot

  ScriptRplot, uma corruptela para script com R para a produção de plots, permite a produção de gráficos com o pacote ggplot2 do R por comandos de texto, embora sem o conhecimento da sintaxe da linguagem ou do pacote.
  O pacote ggplot2, como referido na seção do R neste website, faz parte de um ecossistema de análise e visualização de dados denominado Tidyverse, e cujos recursos são carregados por pacote homônimo. A estrutura gramatical da biblioteca permite a produção de gráficos de qualidade para publicação técnico-científica, como ilustrado em diversas páginas na rede.

Diferentemente da sintaxe convencional de programação de R e do sistema gráfico do pacote, o ScriptRplot oferece ao usuário os ajustes necessários à plotagem em linguagem natural. Não obstante, também fornece a linha completa de comandos para a compilação do gráfico pretendido.

  O script foi concebido itemizando as 7 camadas propostas na gramática de gráficos de Wilkinson 1 presente no pacote ggplot2, mas dipersas numa sequência autoral itemizada para a confecção do gráfico, como segue:
### Estrutura de camadas para o ScriptRplot

1. Data load - carregamento de dados;
2. Reshape - conversão facultativa de dados de formato Wide para Long exigido pelo pacote;
3. Preamble - transformações prévias no conjuto de dados (atualmente, somente uma conversão facultativa de variável numérica em categórica);
4. Dataset- atribuição de variáveis dependente e independente
5. Grouping - atribuição de variável de grupo;
6. Error bar - barra de erros e formatação;
7. Symbol - tipo e atribuições para símbolos;
8. Line - tipo e atribuições para linhas;
9. Curve - linhas matemáticas de tendência e formatação;
10. Other plots - atribuições facultativas para barras, histogramas, gráfico de matriz de dados, simulação de curvas matemáticas, e apresentação de paineis;
11. Axis - atribuição dos eixos (primário e secundário);
12. Linhas - adição e formatação de linhas verticais e horizontais;
13. Zoom - nível de cobertura dos eixos do gráfico;
14. Additional colour scale - paletas adicionais de cores;
15. Additional expression - expressões aditivas facultativas;
16. Legend - formatação de legendas;
17. Caption - formatação de rótulos (títulos, subtítulos);
18. Text - inserção e posicionamento de texto; 
  Para cada ítem elencado acima, o ScriptRplot oferece um rápido comentário sobre as possibilidades de inserção, o que reforça sua chancela ao Ensino Reprodutível.


  Dessa forma, é possível experimentar variações diversas para a plotagem, ao mesmo tempo em que se permite uma apropriação paulatina e até mesmo lúdica da sintaxe exigida pelo ggplot2; embora essa não seja necessária à compilação do gráfico, bastando-se apenas a inserção sequencial e facultativa de seus elementos. Uma vez configurado textualmente os elementos gráficos, o ScriptRplot segue convertendo as variáveis do usuário em variáveis para interpretação do compilador do R. As variáveis convertidas a partir dos componentes gráficos são apresentadas abaixo.
Componentes gráficos para o ScriptRplot junto à gramática de gráficos do pacote gglot2 para R.
Elemento Objeto Comando
Mapping main ggplot(data=dataset, mapping)
Título e Legenda titles theme(plot.title = …, plot.caption = …)
Rótulos labels labs(x=…, y=…, title=…, …)
Barras de erro error_bar geom_errorbar(… aes(ymin=y-error_down, ymax=y+error_up))
Legenda plot_legend theme(legend.title=…, legend.position=…, …)
Guias legend_guide guides(colour=…, size=…, …)
Anotação de texto annotation annotate(“text”, x=…, y=…, label=…, parse=TRUE)
Valores dos eixos axis_values theme(axis.text.x=…, axis.text.y=…)
Rótulos dos eixos axis_labels theme(axis.title.x=…, axis.title.y=…)
Zoom axis_lim coord_cartesian(xlim=c(x_min,x_max), ylim=c(y_min,y_max))
Linha horizontal line_add_horiz geom_hline(yintercept=…, …)
Linha vertical line_add_vert geom_vline(xintercept=…, …)
Linha inclinada line_add_incl geom_abline(intercept=…, slope=…, …)
Tipo 1 - Todos os pontos type_allpoints allpoints(shape=…, colour=…, …)
Tipo 2 - Agrupamento type_group grouping(stroke=…, aes(shape=…, …))
Resumo estatístico summary_stats stat_summary(fun.data=…, fun=…, …)
Linha 1 - Todos os pontos line_all geom_line(size=…, alpha=…, …)
Linha 2 - Agrupamento line_group geom_line(size=…, aes(…))
Curva 1 - Todos os pontos curve_all geom_smooth(data=subset(…), method=…, aes(…))
Curva 2 - Agrupamento curve_group geom_smooth(data=subset(…), method=…, aes(…))
Barra/Histograma bar_hist hist_bar(stat=…, bins=…, aes(…))
Simulação simul simulation(fun=…, geom=…, …)
Comando Principal p_main main + theme_plot + … + bar_hist + …
Complementos p p_main + axis_inversion + … + simul + legend_inversion


Código-fonte para o ScriptRplot

  Segue o código para livre distribuição e adaptação junto ao ScriptRplot. O código permite a construção de um gráfico a partir de dados carregados pelo usuário no próprio script, e fornecidos abaixo. Lembre-se: é necessário que os dados para o gráfico estejam no mesmo diretório de sessão do RStudio, e juntamente ao script.

Download

ScriptRplot versão 1.0

Dados para o gráfico

  Quando compilado, o script resulta no gráfico que segue, para visualização da atividade cinética em ensaio de inibição com puromicina.
  Observe que o gráfico apresenta a inserção de 1) dados multivariados, com 2) símbolos e 3) espessura definida, 4) tipos distintos, 5) preenchimento e 6) cores distintas para cada subconjunto, 7) barras de erro, 8) disposição em painel, 9) configuração e tema específicos, e 10) ajuste não linear em subconjuntos para cada nível dos dados, e por equação introduzida pelo usuário.

Saída gráfica do ScriptRplot (versão 1.0) para os dados atividade enzimática sob ação do antibiótico puromicina.
  E o mais importante: à despeito da complexidade envolvida na visualização dos dados, o scriptRplot permite a construção do gráfico sem necessidade de conhecimento da sintaxe da linguagem R de programação, bem como do pacote envolvido (ggplot2). Dessa forma, basta “rodar” o script, embora seja plausível e desejável sua modificação. Todas essas características ímpares coadunam para a oferta de um Ensino Reprodutível voltado à construção de gráficos elegantes.
De volta ao topo

Notas de rodapé

  1. Wickham, Hadley. “A layered grammar of graphics.” Journal of computational and graphical statistics 19.1 (2010): 3-28.↩︎