Você está na página 1de 39

Aula 4

Álvaro João Pereira Filho

Curso de R
11/09/2018

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 1 / 39


Revisão

Aula passada...

Vimos situações mais eficientes de recodificar variáveis:


• através da função ifelse(), com o primeiro argumento sendo uma
relação lógica, seguido pelo valor quando a relação lógica for TRUE e
o último argumento quando a relação for FALSE;
• através da função cut(), quando mais de uma categoria, definindo
primeiro o vetor, seguido pelos intervalos e finalizando com os labels.
É possı́vel recodificar através da seleção dos elementos ou regras de
seleção, seguido da atribuição dos valores desejados ou que a teoria
designar

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 2 / 39


Revisão

Aula passada...

Vimos também que é possı́vel fazer gráficos no R, com qplot() já


instalado, ou com o pacote ggplot2
library ( ggplot2 )

A estrutura básica é dada pela definição da fonte dos dados, data


frame e dos eixos x e y, respectivamente
ggplot ( dados , aes ( x = var1 , y = var2 ))

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 3 / 39


Revisão

Aula passada...

Definimos também alguns aspectos presentes nos eixos, adicionados


através do operados ’+’
Primeiro, os nomes dos eixos definidos por xlab() e ylab()
ggplot ( dados , aes ( x = var1 , y = var2 )) +
xlab ( " var1 em medidas " ) + ylab ( " var2 me medidas \)

Adicionamos o tı́tulo do gráfico através da função ggtitle() e o


subtı́tulo dentro dessa função com o argumento subtitle =
ggplot ( dados , aes ( x = var1 , y = var2 )) +
ggtitle ( " G r f i c o de exemplo " ,
subtitle = " metodos mistos 2018 " )

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 4 / 39


Revisão

Aula passada...

Definimos também alguns aspectos presentes nos eixos, adicionados


através do operados ’+’
Primeiro, os nomes dos eixos definidos por xlab() e ylab()
ggplot ( dados , aes ( x = var1 , y = var2 )) +
xlab ( " var1 em medidas " ) + ylab ( " var2 me medidas \)

Adicionamos o tı́tulo do gráfico através da função ggtitle() e o


subtı́tulo dentro dessa função com o argumento subtitle =
ggplot ( dados , aes ( x = var1 , y = var2 )) +
ggtitle ( " G r f i c o de exemplo " ,
subtitle = " metodos mistos 2018 " )

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 5 / 39


Revisão

Aula passada...

Alguns tipos de gráficos foram apresentados: histograma, barras e de


dispersão, ou pontos
Para definirmos, utilizamos a função geom histogram(), geom bar(),
e geom point(), respectivamente
Ainda adicionamos texto ao gráfico de pontos, com geom text(),
representando observações com categorias diferentes
Podemos usar ainda, para caracterizar uma terceira variável, colour =
ou fill = dentro do argumento aes() na estrutura básica do ggplot()

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 6 / 39


Revisão

Aula passada...

Por fim, redefinimos a escala dos eixos com a função


coord cartesian(), redimensionando o eixo y com ylim = c(min,max)
Ainda, redefinimos o eixo x com a função scale x continuous(), dentro
com o argumento breaks = c() para dizer quais valores serão expostos
no eixo x
Se quisermos o inverso, basta substituir o que tem y por x, vice versa.

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 7 / 39


Tipos de gráficos

Gráfico de linhas

Gráficos de linhas podem ser construı́dos a partir de variáveis


discretas no x e contı́nua no y, ou entre contı́nuas.
Geralmente, o x representa tempo:
data ( " central . park " )

# transformar o x em categorica : factor ()


central . park $ DY <- factor ( central . park $ DY )

ggplot ( central . park , aes ( x = DY , y = MAX , group =1))


+ geom _ line ()

Utilizamos group = 1 para o ggplot reconhecer que as observações


devem ser ligadas

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 8 / 39


Tipos de gráficos

Gráficos de linhas

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 9 / 39


Tipos de gráficos

Gráfico de linhas

A inclusão do valor 0 pode ser importante em certas ocasiões;


Podemos incluir expandindo o eixo y através da função
expand limits(), ou ylim()
ggplot ( central . park , aes ( x = DY , y = MAX , group =1)) +
geom _ line () + expand _ limits ( y =0)

ggplot ( central . park , aes ( x = DY , y = MAX , group =1)) +


geom _ line () + ylim (0 , max ( central . park $ MAX ))

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 10 / 39


Tipos de gráficos

Gráficos de linhas

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 11 / 39


Tipos de gráficos

Gráfico de linhas

Adicionaremos pontos à linha, o que pode ser manipulado com size,


colour e fill
Para isso adicionamos a função geom point() à estrutura do gráfico
de linhas
ggplot ( central . park , aes ( x = DY , y = MAX , group =1)) +
geom _ line () + geom _ point ()

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 12 / 39


Tipos de gráficos

Gráficos de linhas

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 13 / 39


Tipos de gráficos

Gráfico de linhas

Por fim, vamos adicionar duas linhas com a temperatura máxima e


mı́nima para cada dia em Nova York
Primeiro, vamos retirar as observações das temperaturas máxima e
mı́nima de acordo com o dia:
data ( " central . park " )

temperatura _ max <- subset ( central . park ,


select = c ( DY , MAX ))
temperatura _ min <- subset ( central . park ,
select = c ( DY , MIN ))

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 14 / 39


Tipos de gráficos

Gráfico de linhas

Em seguida, igualaremos os nomes das colunas e definimos uma


coluna para identificar quando é máximo e quando é mı́nimo
names ( temperatura _ max ) <- c ( " DY " ," TEMP " )
temperatura _ max $ tipo <- " Maxima "

names ( temperatura _ min ) <- c ( " DY " ," TEMP " )


temperatura _ min $ tipo <- " Minima "

Finalmente, juntamos os dois subsets em um só combinando as linhas


com a função rbind()
temperatura <-
rbind ( temperatura _ max , temperatura _ min )

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 15 / 39


Tipos de gráficos

Gráfico de linhas

Definimos o gráfico com seguinte código:


ggplot ( temperatura , aes ( x = DY , y = TEMP ,
colour = tipo )) + geom _ line () +
geom _ point () + expand _ limits ( y = 0)

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 16 / 39


Tipos de gráficos

Gráficos de linhas

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 17 / 39


Tipos de gráficos

Gráfico de linhas

Ou podemos diferenciar as duas linhas por tipo:


ggplot ( temperatura , aes ( x = DY , y = TEMP ,
linetype = tipo )) +
geom _ line () + geom _ point () +
expand _ limits ( y = 0)

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 18 / 39


Tipos de gráficos

Gráficos de linhas

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 19 / 39


Gráfico box plot

Básico box plot

O box plot basicamente mapeia uma variável contı́nua no y e uma


discreta no x
Usaremos a base de dados do MLBattend;
data ( " MLBattend " )

> table ( MLBattend $ division )

CENT EAST WEST


70 393 375

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 20 / 39


Gráfico box plot

Básico box plot

Escolhemos a variável contı́nua dos runs.scored como o y


Para plotar o gráfico, portanto, utilizaremos a função geom boxplot()
summary ( MLBattend $ runs . scored )
Min . 1 st Qu . Median Mean 3 rd Qu . Max .
329.0 633.0 691.5 694.9 759.0 1009.0

ggplot ( MLBattend , aes ( x = factor ( division ) ,


y = runs . scored )) + geom _ boxplot ()

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 21 / 39


Gráfico box plot

Gráficos box plot

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 22 / 39


Gráfico box plot

Básico box plot

Podemos reduzir o comprimento das caixas com o argumento width


= dentro da função geom boxplot()
graph <- ggplot ( MLBattend , aes ( x = factor ( division ) ,
y = runs . scored )) + geom _ boxplot ( width = . 5 )

Ao mesmo tempo que vamos inserir a média deixo da caixa, definido


pela funçao stat summary()
graph + stat _ summary ( fun . y = " mean " , geom = " point " ,
shape = 20 , size = 3 , fill = " white " )

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 23 / 39


Gráfico box plot

Gráficos box plot

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 24 / 39


Menção honrosa

Menção honrosa

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 25 / 39


Menção honrosa

Menção honrosa

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 26 / 39


Estética

Estética dos gráficos

Todos os itens de estética dos gráficos podem ser controlados;


O primeiro deles é o tı́tulo do gráfico, que inserimos utilizando ou
ggtitle() ou labs(title = )
ggplot ( MLBattend , aes ( x = factor ( division ) ,
y = runs . scored )) + geom _ boxplot () +
labs ( title = " Distribuicao de runs por divisao " )

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 27 / 39


Estética

Estética dos gráficos

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 28 / 39


Estética

Estética dos gráficos

Uma das mais importantes funções no ggplot(), porém, é o theme()


theme() controla aspectos de dentro do gráfico, como a grande de
linhas e a coloração do fundo
Vamos modificar o fundo de um gráfico de pontos
data ( " kid . weights " )

graph2 <- ggplot ( kid . weights , aes ( x = height ,


y = weight , colour = gender )) + geom _ point ()

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 29 / 39


Estética

Estética dos gráficos

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 30 / 39


Estética

Estética dos gráficos

Vamos modificar o fundo do gráfico utilizando theme()


graph2 + theme ( panel . grid . major =
element _ line ( colour = " blue " ) ,
panel . grid . minor = element _ line ( colour = " black " ,
linetype = " dashed " , size = 0.5) ,
panel . background =
element _ rect ( fill = " lightgreen " ) ,
panel . border = element _ rect ( colour = " blue " ,
fill = NA , size = 2))

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 31 / 39


Estética

Estética dos gráficos

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 32 / 39


Estética

Estética dos gráficos

Mas se eu quiser sumir com as linhas do fundo do gráfico, eu utilizo


como valor element blank()
graph2 + theme ( panel . grid . major = element _ blank () ,
panel . grid . minor = element _ blank ())

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 33 / 39


Estética

Estética dos gráficos

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 34 / 39


Estética

Estética dos gráficos

Para ainda remover a legenda, utilizamos dentro de theme() o


argumento legend.position = ”none
Com o mesmo argumento podemos mover a legenda de lugar
graph2 + theme ( legend . position = " none " )
graph2 + theme ( legend . position = " top " )
graph2 + theme ( legend . position = c (0.9 ,0.2))

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 35 / 39


Estética

Estética dos gráficos

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 36 / 39


Estética

Estética dos gráficos

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 37 / 39


Estética

Estética dos gráficos

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 38 / 39


Estética

Aula 4

Álvaro João Pereira Filho

Curso de R
11/09/2018

Álvaro João Pereira Filho Aula 4 Curso de R11/09/2018 39 / 39

Você também pode gostar