library(tidyverse) View(mpg) #Variáveis: displ (tamanho do motor do carro, em litros) e hwy #(eficiência do uso de combustível na estrada, em milhas por galões) #Dúvidas: ?mpg #Primeiro gráfico (base do R): plot(x=mpg$displ, y=mpg$hwy) #usar qplot (gráficos rápidos no ggplot2). Escolhe automaticamente #o que acha mais adequado. qplot(x=mpg$displ, y=mpg$hwy) qplot(x=mpg$displ) #Com o ggplot2: ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy)) #Quanto maior o tamanho do motor, menor é a eficiência. #Atenção: começar com ggplot(), daí adicionar camadas. O primeiro argumento do #ggplot() é o banco de dados. #geom_point indica que é um gráfico de dispersão. #Adicionar uma nova variável ao gráfico para ajudar a interpretar melhor: # class = tipo de carro. #Opções: #1: Cor ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy, color=class)) #Gostaram da cor? Para mudar a cor, adicionar nova camada scale_colour_brewer() ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy, color=class)) + scale_colour_brewer() #Testar novas cores (slide): ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy, color=class)) + scale_colour_brewer(palette="Dark2") #Analisar agora: outliers são carros de 2 lugares. Motor grande, mas são pequenos #o que diminui os gastos de combustível (andam por mais milhas). #Outra possibilidade de diferenciar: adicionar formato (shape) aos pontos. ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy, shape=class)) #Problema: ggplot2 só tem 6 shapes, SUV desapareceu. #Outra possibilidade: analisar cada tipo de carro separadamente (usando facets). ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy)) + facet_wrap(~class) #Adicionar cor aos pontos: ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy), color="darkblue") + facet_wrap(~class) # ~ é assim por padrão da função #Adicionar cor diferente segundo ano: ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy, color=factor(year))) + facet_wrap(~class) +# ~ é assim por padrão da função scale_colour_brewer(palette="Dark2") #Testar diferentes cores. #Adicionar uma linha de regressão ao gráfico original: ggplot(data=mpg) + geom_point(aes(x=displ, y=hwy)) + geom_smooth(aes(x=displ, y=hwy)) #Loess: linhas de regressão suavizadas. #Cinza = intervalo de confiança de 95% para a curva. #Problema: repetição. É possível adicionar x e y já no ggplot(). Aplica a todos os #geoms sem mapping especificado ggplot(data=mpg, aes(x=displ, y=hwy)) + geom_point() + geom_smooth() #É possível especificar mapping diferente para só uma camada ggplot(data=mpg, aes(x=displ, y=hwy)) + geom_point(aes(color=class)) + geom_smooth() #Gráfico de barras #Banco de dados "diamonds" (vem no ggplot2) ?diamonds #Dados sobre ~54000 diamantes, analisar número de diamantes segundo corte: ggplot(data=diamonds) + geom_bar(mapping=aes(x=cut)) #Adicionar cor: ggplot(data=diamonds) + geom_bar(mapping=aes(x=cut, fill=cut)) #Vez distribuição da clareza do diamante segundo o corte. ggplot(data=diamonds) + geom_bar(mapping=aes(x=cut, fill=clarity)) #Mudar a cor: scale_fill_brewer(palette = 3) #Melhor opção, clarity separado: ggplot(data=diamonds) + geom_bar(mapping=aes(x=cut, fill=clarity), position="dodge") + scale_fill_brewer(palette = "Dark2") #Adicionar nomes: título, fonte e variáveis ggplot(data=mpg, aes(displ,hwy)) + geom_point(aes(color=class)) + geom_smooth(se=FALSE) + scale_colour_brewer(palette="Dark2") + ggtitle("Eficiência de energia e tamanho do motor") + theme(plot.title = element_text(hjust = 0.5)) + #centralizar título xlab ("Tamanho do motor (L)") + ylab("Eficiência (mpg)") #Fim. Comparar primeiro gráfico e gráfico final #Pirâmide dados <- read.csv("PiramideR.csv", check.names= FALSE, sep = ";") graf <- ggplot(data = dados, aes(x = Idade, y = Pop, fill = Sexo)) + geom_bar(data = dplyr::filter(dados, Sexo == "Fem"), stat = "identity") + geom_bar(data = dplyr::filter(dados, Sexo == "Masc"), stat = "identity") + scale_y_continuous(breaks = seq(-4000000, 4000000, 1000000), labels = paste0(as.character(c(4:0, 1:4)), "m")) + ylab('População') + xlab('Idade') + ggtitle("Pirâmide populacional do Estado de São Paulo, 2012")+ theme(plot.title=element_text(size=24)) + scale_fill_hue(guide = guide_legend(reverse=TRUE)) + coord_flip() graf ggsave("graph.png", width=10, height=8) #stat = identity, o tamanho da barra é o valor de y (não a contagem) #extensões do ggplot2: http://www.ggplot2-exts.org/gallery/ #Para inspiração: R Graph Gallery