Escolar Documentos
Profissional Documentos
Cultura Documentos
Programação Estatística
Programação Estatística
Material Teórico
Visualização de Dados
Revisão Textual:
Prof. Me. Luciano Vieira Francisco
Visualização de Dados
• Introdução;
• Gráficos.
OBJETIVO DE APRENDIZADO
• Aprender a elaborar gráficos em R com o comando plot e o pacote ggplot2.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.
Mantenha o foco!
Evite se distrair com
as redes sociais.
Seja original!
Nunca plagie
trabalhos.
Não se esqueça
de se alimentar
Assim: e de se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como seu “momento do estudo”;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos
e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam-
bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão sua
interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e
de aprendizagem.
UNIDADE Visualização de Dados
Introdução
Você já ouviu a frase “uma imagem vale mais que mil palavras”? Pois ao contem-
plarmos uma paisagem, ou qualquer outro tipo de imagem, conseguimos extrair in-
formações diversas, podemos entender algo que está acontecendo e até gerar algum
tipo de sentimento.
A apresentação de dados de forma gráfica é uma das tarefas mais comuns para
um estatístico ou cientista de dados, por esse motivo, é de suma importância, na hora
da confecção do gráfico, ter em mente o seu público-alvo.
Quando desenvolvemos um gráfico, não o fazemos para nós mesmos e sim para
outras pessoas lerem os resultados apresentados. Imagine um gráfico de linhas, onde
todas as linhas estão da mesma cor e não existe nenhuma forma de diferenciá-las.
Estamos constantemente em contato com gráficos em nosso dia a dia, desde info-
gráficos simples sobre a importância da reciclagem até os gráficos comparativos sobre
a pesquisa de intenção de votos durante o período eleitoral.
Gráficos
Gráfico de Linhas
Esse gráfico é utilizado quando os dados possuem linearidade, ou seja, estão in-
terligados em algum intervalo de tempo. Ele facilita o encontro do comportamento
ou dos padrões de dados em uma determinada janela de tempo.
Para melhor compreender a utilização dos gráficos de linha, acesse o conteúdo do Portal
Explor
8
Gráfico de Pontos
Os gráficos de pontos têm a função de mostrar os valores quantitativos, de maneira
organizada, sendo necessário informar as coordenadas – x, y – de cada ponto do gráfico.
Gráfico de Linhas Para melhor compreender a utilização dos gráficos de linha, acesse o con-
Explor
Gráfico de Barras
Imagine que você tem uma quantidade de frutas diversas, e precisa agrupá-las
e determinar as quantidades. O gráfico de barras faz mais ou menos essa tarefa.
Ele irá agrupar os dados por categoria em retângulos. O tamanho do retângulo
muda proporcionalmente à quantidade de observações da categoria.
Por esse motivo, tal gráfico é comumente utilizado para comparar categorias/
valores. Um exemplo de seu uso é na pesquisa de intenção de votos, na qual aparece
o percentual de votos de cada um dos candidatos a determinado cargo público.
Para melhor compreender a utilização dos gráficos de barra, acesse o conteúdo do Portal
Explor
9
9
UNIDADE Visualização de Dados
Gráfico de Pizza
Chamado também de gráfico de setores, o gráfico de pizza é um diagrama circu-
lar dividido em “fatias”. Cada fatia representa uma categoria do conjunto de dados.
A divisão das fatias é determinada pela frequência da categoria na base, ou seja, quanto
maior for a frequência de determinada categoria, maior será sua fatia no gráfico.
Gráfico Box Plot Para melhor compreender a utilização dos gráficos box plot, acesse o conte-
Explor
Histograma
Um histograma é um gráfico de barras que representa a distribuição da frequência
de um conjunto de dados contínuos, podendo ser feito em valores absolutos, relativos
e densidades.
Gráfico de Barras Para melhor compreender a utilização dos gráficos de barra, acesse o con-
Explor
Gráficos RBase
Existe um conjunto de funções ligadas à geração de gráficos nativos do ambiente R.
Além de gerar os gráficos de maneira simples, eles podem ser configurados por meio
de parâmetros ou com a utilização de outras funções.
Antes de começar a codificação, vamos falar sobre a base de dados utilizada daqui em
diante para a geração dos gráficos – exceto o de linhas. O conjunto de dados chama-se
Iris e pertence a um repositório de dados aberto.
Não se faz necessário ir até o site baixar a base de dados, pois é possível carregá-la
utilizando a função “data()”. Pode-se salvar em um objeto ou simplesmente esperar a
primeira chamada iris$ que o Rstudio irá gerar automaticamente o data frame.
Plot()
A função plot(), gera gráficos de pontos – que compõem um gráfico de disper-
são. A estrutura básica da função é: plot(valor eixo X, valor eixo y).
10
Os parâmetros mais comuns são:
• main = “título do gráfico”;
• col = “cor dos pontos”;
• xlab = “texto do eixo x”;
• ylab = “texto do eixo y”.
iris$Sepal.Length
Figura 1 – Gráfico gerado pela função “plot()”, no qual mudamos somente a cor de maneira simples
plot(iris$Petal.Length,iris$Petal.Width,
main= “Iris Pétalas”,
xlab= “Comprimento Pétala”,
ylab = “ Largura Pétala”,
col=iris$Species)
Mesmo que não saibamos que cor pertence a cada categoria, nesse momento já
é possível identificar que duas categorias da base de dados Iris, quando considera-
mos as pétalas, têm valores próximos. Indico que ao plotar o gráfico relacionado à
Sépala compare o comportamento de ambos.
11
11
UNIDADE Visualização de Dados
Iris Pétalas
2.0 2.5 3.0 3.5 4.0
Largura Pétala
1 2 3 4 5 6 7
Comprimento Pétala
Figura 2 – Inclusão do título, alteração do rótulo dos eixos x e y do gráfico de pontos classificados por tipo
Lines()
A criação de gráfico de linhas necessita das funções plot() e lines() combinadas,
conforme no bloco de código fonte escrito a seguir:
plot(x, sin(x),
main=”duas linhas”,
ylab=””,
type=”l”,
col=”blue”)
lines(x,cos(x), col=”red”)
legend(“topleft”,
c(“sin(x)”,”cos(x)”),
fill=c(“blue”,”red”))
No gráfico de linhas não foi utilizado os dados da Iris, pois eles não possuem
ligação temporal. Assim criou-se 21 instâncias do valor X, por meio da linha de
comando “x <- 0:20”.
12
Duas Linhas
0.5 -1.0
sin(x)
cos(x)
0.0
-1.0 0.5
0 5 10 15 20
x
Figura 3 – Gráfico das linhas seno e cosseno de x com legendas
Hist()
A função “hist()” deve ser utilizada para criar histogramas. A estrutura básica dessa
função é hist(dados). Os parâmetros mais comuns são os mesmos da função plot, ou
seja, “main”, “col”, ”xlab” e “ylab”. A seguir apresentamos um exemplo do comando
para a criação do histograma.
hist(iris$Sepal.Length,col=”orange”,
xlab= “Sépala”,
ylab = “frequência”)
Caso queira ver o histograma de todas as colunas da base Iris de uma vez, será
necessária a utilização da função “par(mfrow= c(linha,coluna))”, conforme exempli-
ficado no código fonte a seguir:
par(mfrow=c(2,2))
for(i in 1:4) {
hist(iris[,i], main=names(iris)[i])
13
13
UNIDADE Visualização de Dados
Sepal.Lenght Sepal.Width
Frequency
Frequency
0 25
0 25
4 5 6 7 8 2.0 2.5 3.0 3.5 4.0
iris[, i] iris[, i]
Petal.Leng Petal.Leng
Frequency
Frequency
0 30
0 25
1 2 3 4 5 6 7 0.0 0.5 1.0 1.5 2.0 2.5
iris[, i] iris[, i]
Lembre-se a função par() pode ser utilizada em qualquer gráfico. Não há uma
regra para seu uso, ficando à sua vontade quando e onde agrupar os gráficos.
Também é possível agrupar gráficos de tipos diferentes.
uma postagem explicando todo o processo de plotagem simultânea de dois ou mais gráfi-
cos. Para conferir as principais dicas acesse este link: http://bit.ly/2ZpvSG1
Boxplot()
Assim como a função “hist()”, a função “boxplot()” necessita apenas receber a
coluna ou o conjunto de dados – data frame – para exibir seu conteúdo. Conforme o
exemplo a seguir:
Após gerado, o gráfico possui cinco caixas, uma para cada coluna do data frame
Iris conforme mostra a Figura 5. Note que até mesmo a coluna Species foi contabi-
lizada, mesmo ela contendo valores numéricos. Isso ocorre por causa da contagem
da ocorrência do mesmo termo. Outra curiosidade nessa caixa é que ela não possui
as linhas que indicam o valor mínimo e máximo da amostra de dados, pois isso não
existe nessa coluna.
14
Data Set Iris
8
6
4
2
0
Barplot()
A função barplot() irá gerar gráficos de barras de três tipos: os comuns com as
barras na vertical, aqueles com as barras na horizontal e os gráficos de barras com
valores empilhados.
dtIris = data.frame(contagem)
barplot(dtIris$Freq,names.arg = dtIris$Var1,
main= “Iris”,
col = dtIris$Var1 )
Iris
50
40
30
20
10
0
15
15
UNIDADE Visualização de Dados
explicação de algumas das funções utilizadas nesse processo. Para conferir as principais dicas
acesse este link: http://bit.ly/2ZoYcbj
Pie()
A função “pie()” irá gerar o gráfico de pizza, para tanto, será necessário calcular o
percentual de cada classe no conjunto de dados, conforme indicado no código a seguir:
contagem2 = table(iris$Species)
nomes2 = levels(iris$Species)
porcent2 = round(contagem2/sum(contagem2)*100,2)
rotulo2=paste(nomes2,” (“,porcent2,”%”,”)”,sep=””)
pie(table(iris$Species),labels=rotulo2,
main=”Iris”, col=c(“#003154”,”#dd4a37”,”green”))
No caso do exemplo com a base Iris, será gerado um gráfico dividido em 3 partes
iguais, pois os percentuais de cada flor serão iguais. A Figura 7 mostra tal divisão por
meio das cores das fatias do gráfico e do rótulo – texto – indicando o percentual.
Iris
setosa (33.33%)
versicolor (33.33%)
virginica (33.33%)
Figura 7 – Gráfico de pizza gerado utilizando a função pie()
Pacote ggplot2
O pacote ggplot2 foi desenvolvido por Hadley Wickham em sua tese de douto-
rado e hoje é a maneira mais usual de construir gráficos na linguagem R. Isso por-
que o ggplot2 segue os princípios fundamentais para a criação de gráficos: dados,
rótulos, anotações, sistemas de coordenadas. Esses princípios foram organizados
em camadas.
16
As vantagens de usar o ggplot2 são:
• Facilidade de edição de gráficos;
• Padronização das funções, diminuindo o tempo de aprendizado;
• Diversidade de tipos de gráficos;
• visualização mais agradável aos olhos.
Isso ocorreu porque o comando ggplot criou a camada base ou fundo do gráfico.
Como só indicamos a base de dados mapeada para esse gráfico e não imputamos o
que é o eixo x e o eixo y, tudo que é relacionado as coordenadas ficou em branco.
17
17
UNIDADE Visualização de Dados
4.5
4.0
3.5
Sepal.Width
3.0
2.5
2.0
5 6 7 8
Sepal.Lenght
Agora vamos deixar os pontos coloridos, separados por classe. Para tanto iremos
usar o parâmetro “colour“, dentro da função aes, de acordo com o exemplo a seguir:
geom_point()
O gráfico resultante terá além dos pontos coloridos uma legenda de forma auto-
mática, conforme a Figura 10:
4.5
4.0
3.5
Sepal.Width
as.factor (Species)
setosa
3.0 versicolor
virginica
2.5
2.0
5 6 7 8
Sepal.Lenght
Para todos os gráficos gerados por meio do ggplot2 é possível a edição dos rótulos
para os eixos x e y e título utilizando as funções: xlab(), ylab() e ggtitle(), respectivamente.
18
A função Theme() pode ser utilizada para editar diversas características dos seus
gráficos como, por exemplo, o tamanho da fonte do título, o plano de fundo, a posição
da legenda, entre outros. O exemplo a seguir mostra a utilização das funções: xlab(),
ylab(), ggtitle() e theme().
ggplot(iris,aes(x=Sepal.Length,
y=Sepal.Width,
colour = as.factor(Species),
shape =as.factor(Species)))+
xlab(“Tamanho”) +
ylab(“Comprimento”) +
ggtitle(“Sépala Iris”)+
face = “bold”),
legend.title=element_blank(),
legend.text = element_text(size=10),
legend.position = “bottom”)
Sépala Iris
4.5
4.0
3.5
Comprimento
3.0
2.5
2.0
5 6 7 8
Tamanho
setosa versicolor virginica
19
19
UNIDADE Visualização de Dados
Uma das questões mais importantes quando se trabalha com o ggplot, é que
os valores serão mostrados conforme o mapeamento dos eixos x e y da base de
dados. Caso queiramos refazer o gráfico de linhas senx e cosx, precisamos fazer
algumas alterações no data frame. Conforme exemplo a seguir:
linha = c(senx,cosx)
xbase = c(x,x)
legenda = c(“senx”,”senx”,”senx”,”senx”,”senx”,”senx”,”senx”,”senx”,
“senx”,”senx”,”senx”,”senx”,”senx”,”senx”,”senx”,”senx”,
“senx”,”senx”,”senx”,”senx”,”senx”,”cosx”,”cosx”,”cosx”,”cosx”,
“cosx”,”cosx”,”cosx”,”cosx”,”cosx”,”cosx”,”cosx”,”cosx”,
“cosx”,”cosx”,”cosx”,”cosx”,”cosx”,”cosx”,”cosx”,”cosx”,”cosx”)
dtLinhas <- data.frame(xbase,linha,legenda)
#grafico de linhas
ggplot(dtLinhas,aes(xbase,linha, fill=legenda)) + geom_line()
Foi necessário criar um vetor de linhas contendo o valor senx e cosx, um vetor
contendo x duas vezes e um vetor do tipo texto contendo a “legenda” ou classe de
cada dado. Após isso, criou-se um data frame e pôde-se criar o gráfico.
1.0
0.5
Comprimento
0.0
-0.5
-1.0
0 5 10 15 20
xbase
Figura 12 – Gráfico de linhas seno x e cosseno x desenvolvido utilizando o ggplot2
20
O uso combinado dos gráficos de pontos e linhas algumas vezes facilita a compre-
ensão dos resultados por parte do usuário. Por isso, no bloco de código a seguir, te-
mos um exemplo da combinação desses gráficos, além da edição de linhas e formas.
ggplot(dtLinhas,aes(xbase,linha,colour=legenda))+
geom_line(aes(linetype= legenda))+
geom_point(aes(shape =legenda ))
A Figura 13 exibe o gráfico de linhas com pontos para os valores seno x e cosseno
de X, tendo as linhas com cores e preenchimentos diferentes por classe. Assim como
a forma dos pontos.
1.0
0.5
Legenda
Comprimento
0.0 cosx
senx
-0.5
-1.0
0 5 10 15 20
xbase
Figura 13 – Combinação dos gráficos de pontos e linhas
ggplot(dtIris,aes(x=dtIris$Var1,y=dtIris$Freq, fill=Var1))+
geom_bar(stat=”identity”)
21
21
UNIDADE Visualização de Dados
geom_histogram(bins=20) +
facet_grid(~ Species)
Para melhor compreender o ggplot2 e sua utilização, acesse este link: http://bit.ly/2Ztw2fB
22
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Gráficos com GGPLOT2
http://bit.ly/2ZxtEo3
Tipos de Gráficos Estatísticos
http://bit.ly/2ZBzpRL
GGPLOT2
http://bit.ly/2Ztw2fB
Principais Gráficos Estatísticos
http://bit.ly/2ZuRwsu
Leitura
CURSO-R
http://bit.ly/2ZrszOq
Tudo o que Você Precisa saber Sobre Gráficos de Pizza
http://bit.ly/3HB8KHG
O que é um Gráfico de Histograma?
http://bit.ly/3Y9ReS3
23
23
UNIDADE Visualização de Dados
Referências
CRAN. The Comprehensive R Archive Network. [20--]. Disponível em: <https://
cran.r-project.org>. Acesso em: maio 2019.
WICKHAM, H. R for Data Science. [S.l.]: O’Reilly, 2017. Disponível em: <https://
r4ds.had.co.nz>. Acesso em: ago. 2019.
24