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))