knitr::opts_chunk$set(echo=TRUE, warning=FALSE, message=FALSE, fig.width=12, fig.height=6)

Neste documento irei rever uma visualização já feita em algum dos trabalhos anteriores e melhorá-la.

library("plotly")
library("dplyr")
library("reshape2")

dados <- read.csv("../lab1/parte 3/atividade-no-github-archive-2012-2015.csv")

O gráfico que escolhi para ser repensado é o seguinte:

ggplot(novas, aes(ano_criacao,WatchEvent, color = repository_language))+ geom_point() + xlab("Ano de criação da linguagem") + ylab("Qnt. de watch events") + ggtitle("Watch events ~ ano de criação")

Durante a correção do exercício sobre os dados de atividade do GitHub recebi feedback sobre a dificuldade de entender esse gráfico, devido a grande quantidade de cores (linguagens de programação) representadas.

Marcas: Pontos - Cada ponto representa uma linguagem de programação
Canais: Posição no eixo y - quantidade de watch events nos repositórios da linguagem, Posição no eixo x - ano de criação da linguagem, Cor - representa o tipo da linguagem de programação.

No mesmo documento da primeira visualização utilizei facetas para tentar dar ao leitor uma melhor visualização das linguagens, separadamente.

ggplot(novas, aes(ano_criacao,WatchEvent, color = repository_language))+ geom_point()   + facet_wrap(~repository_language) + xlab("Ano de criação da linguagem") + ylab("Qnt. de watch events") + ggtitle("Watch events ~ ano de criação") + theme(axis.text.x = element_text(angle = 30, hjust = 1))

De fato, nos ajuda a ter uma visão melhor de cada linguagem, entretanto perde-se o poder de comparar claramente duas ou mais linguagens - o que está ligado a pergunta que desejei responder: “A quantidade de ‘watch events’ é maior naqueles repositórios cujas linguagens surgiram há pouco tempo?”.

Como o número de níveis da variável ano de criação é menor que a da quantidade de linguagens de programação, podemos inverter esses canais, e também aumentar o tamanho da fonte de legenda dos eixos.

ggplot(novas, aes(repository_language,WatchEvent, color = ano_criacao))+ geom_point() + xlab("Ano de criação da linguagem") + ylab("Qnt. de watch events") + ggtitle("Watch events ~ Novas Linguagens") + theme(axis.text.x = element_text(angle = 30, hjust = 1), text=element_text(size=17)) 

Feito isso, podemos também agrupar por ano para melhor comparar linguagens criadas em um mesmo ano.

novasO <- novas %>%
  select(ano_criacao, repository_language, WatchEvent) %>%
  group_by(ano_criacao) %>%
  arrange(desc(ano_criacao))

novasO$repository_language <- factor(novasO$repository_language, levels=(novasO$repository_language))

ggplot(novasO, aes(repository_language,WatchEvent, color = ano_criacao))+ geom_point() + xlab("Ano de criação da linguagem") + ylab("Qnt. de watch events") + ggtitle("Watch events ~ Novas Linguagens") + theme(axis.text.x = element_text(angle = 35, hjust = 1), text=element_text(size=17))