Como fazer gráficos de linhas impressionantes em R: um guia completo com ggplot2

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Gráficos de linha com miniatura R e ggplot2

Gráficos de linha com R

Suas visualizações são desagradáveis? Os anos 1990 acabaram, amigo. Visualizações de aparência horrível não são mais aceitáveis, não importa o quão úteis possam ser. Felizmente, há muito que você pode fazer para aprimorar de forma rápida e fácil a estética de suas visualizações. Hoje você aprenderá a fazer gráficos de linhas impressionantes com R e o ggplot2 pacote.

Quer aprender como fazer gráficos de barras impressionantes com R? Aqui está nosso guia completo.

Este artigo demonstra como fazer um gráfico de linhas esteticamente agradável para qualquer ocasião. Após a leitura, visualizar séries temporais e dados semelhantes deve se tornar uma segunda natureza. Hoje você aprenderá como:

Faça seu primeiro gráfico de linha

R tem um gapminder pacote que você pode baixar. Ele contém dados sobre expectativa de vida, população e PIB entre 1952 e 2007. É um conjunto de dados de série temporal, que é excelente para visualizações baseadas em linha.

Veja como carregá-lo (e outras bibliotecas):

library(dplyr)
library(ggplot2)
library(gapminder)

head(gapminder)

Chamando o head() função produz as primeiras seis linhas do conjunto de dados. Veja como eles são:

Imagem 1 - Conjunto de dados Head of Gapminder

Imagem 1 – Conjunto de dados Head of Gapminder

O pacote amplamente utilizado de R para visualização de dados é ggplot2. É baseado no princípio de camadas. A primeira camada representa os dados e, em seguida, vem uma camada (ou camadas) de visualização. Esses dois são obrigatórios para qualquer tipo de gráfico e os gráficos de linhas não são exceção. Você aprenderá como adicionar camadas adicionais mais tarde.

Seu primeiro gráfico mostrará a população dos Estados Unidos ao longo do tempo. Colunas year e pop são colocados no eixo X e eixo Y, respectivamente:

usa %
  filter(continent == "Americas", country == "United States")

ggplot(usa, aes(x = year, y = pop)) +
  geom_line()

Aqui está a visualização correspondente:

Imagem 2 - Crescimento populacional ao longo do tempo nos Estados Unidos

Imagem 2 – Crescimento populacional ao longo do tempo nos Estados Unidos

A visualização é informativa, mas tão feia quanto parece. As seções a seguir mostrarão como ajustar o visual.

Alterar cor, tipo de linha e adicionar marcadores

Manter o estilo padrão é a pior coisa que você pode fazer. Com o geom_line() camada, você pode alterar as seguintes propriedades:

  • color – cor da linha
  • size – espessura da linha
  • linetype – talvez você queira linhas tracejadas?

Veja como fazer uma linha azul tracejada mais espessa:

ggplot(usa, aes(x = year, y = pop)) +
  geom_line(linetype = "dashed", color = "#0099f9", size = 2)
Imagem 3 - Alterando o estilo, largura e cor da linha

Imagem 3 – Alterando o estilo, largura e cor da linha

Melhor, mas ainda não chegou lá. A maioria dos gráficos de linha combina linhas e pontos para tornar o resultado mais atraente. Veja como adicionar pontos (marcadores) aos seus:

ggplot(usa, aes(x = year, y = pop)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5)
Imagem 4 - Gráfico de linhas com marcadores

Imagem 4 – Gráfico de linhas com marcadores

Agora os gráficos estão chegando a algum lugar – mas ainda há muito a fazer.

Títulos, legendas e legendas ocultas

Você não pode ter um gráfico completo sem pelo menos um título. Uma boa legenda pode ser útil para informações extras, e uma legenda é um bom lugar para citar suas fontes. A maneira mais conveniente de adicioná-los é por meio de um labs() camada. Recebe valores para title, subtitlee caption.

Veja como adicionar todos os três, sem estilos:

ggplot(usa, aes(x = year, y = lifeExp)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5) +
  labs(
    title = "Average life expectancy in US",
    subtitle = "Data from 1952 to 2007",
    caption = "Source: Gapminder dataset"
  )
IMAGEM 5;  Imagem 5 - Título, subtítulo e legenda com estilos padrão

Imagem 5 – Título, subtítulo e legenda com estilos padrão

Mas há mais nesta história. Você pode personalizar todos os três da mesma maneira – colocando estilos no theme() camada. Veja como centralizar o título e a legenda, alinhar à esquerda e colocar em itálico a legenda e tornar o título azul:

ggplot(usa, aes(x = year, y = lifeExp)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5) +
  labs(
    title = "Average life expectancy in US",
    subtitle = "Data from 1952 to 2007",
    caption = "Source: Gapminder dataset"
  ) +
  theme(
    plot.title = element_text(color = "#0099f9", size = 20, face = "bold", hjust = 0.5),
    plot.subtitle = element_text(size = 13, face = "bold", hjust = 0.5),
    plot.caption = element_text(face = "italic", hjust = 0)
  )
Imagem 6 - Estilo, subtítulo e legenda

Imagem 6 – Estilo, subtítulo e legenda

Tudo isso é ótimo, mas e os rótulos dos eixos? Vamos ver como ajustá-los a seguir.

Editar rótulos do eixo

Basta dar uma olhada no eixo Y dos gráficos do ano anterior vs. população. Os carrapatos parecem horríveis. A notação científica não ajuda a tornar as coisas mais fáceis de ler. O seguinte snippet coloca “M” ao lado do número – indica “Milhões”:

library(scales)

ggplot(usa, aes(x = year, y = pop)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5) +
  scale_y_continuous(
    labels = unit_format(unit = "M", scale = 1e-6)
  )
Imagem 7 - Alteração das marcações do eixo

Imagem 7 – Alteração das marcações do eixo

Mas e se você quiser um pouco mais de espaço na parte superior e inferior? Você pode especificar onde o eixo começa e termina. Veja como:

ggplot(usa, aes(x = year, y = pop)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5) +
  expand_limits(y = c(125000000, 325000000)) +
  scale_y_continuous(
    labels = unit_format(unit = "M", scale = 1e-6)
  )
Imagem 8 - Alterando os limites do eixo

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Imagem 8 – Alterando os limites do eixo

o labs() camada recebe valores para x e y – estes determinam o texto mostrado nos eixos X e Y, respectivamente. Você pode ajustar os estilos dos rótulos dos eixos da mesma forma que fez com o título, subtítulo e legenda. O snippet abaixo mostra como:

ggplot(usa, aes(x = year, y = pop)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5) +
  scale_y_continuous(
    labels = unit_format(unit = "M", scale = 1e-6)
  ) +
  labs(
    x = "Year",
    y = "Population"
  ) +
  theme(
    axis.title.x = element_text(color = "#0099f9", size = 16, face = "bold"),
    axis.title.y = element_text(color = "#0099f9", size = 16, face = "italic")
  )
Imagem 9 - Alterando os rótulos dos eixos X e Y

Imagem 9 – Alterando os rótulos dos eixos X e Y

E é isso para eixos de estilo! Vamos ver como mostrar várias linhas no mesmo gráfico a seguir.

Desenhe várias linhas no mesmo gráfico

Mostrar várias linhas em um único gráfico pode ser útil. Vamos usá-lo para comparar a expectativa de vida média entre os principais países da América do Norte – Estados Unidos, Canadá e México.

Para exibir várias linhas, você pode usar o group atributo na camada de estética de dados. Aqui está um exemplo:

north_big %
  filter(continent == "Americas", country %in% c("United States", "Canada", "Mexico"))

ggplot(north_big, aes(x = year, y = lifeExp, group = country)) +
  geom_line(aes(color = country), size = 2)
Imagem 10 - Expectativa média de vida entre os principais países da América do Norte

Imagem 10 – Expectativa média de vida entre os principais países da América do Norte

Caso você esteja se perguntando como adicionar marcadores a várias linhas – o procedimento é idêntico ao de uma única linha. Dê uma olhada no snippet de código e na imagem abaixo:

ggplot(north_big, aes(x = year, y = lifeExp, group = country)) +
  geom_line(aes(color = country), size = 2) +
  geom_point(aes(color = country), size = 5)
Imagem 11 - Adicionando marcadores a várias linhas

Imagem 11 – Adicionando marcadores a várias linhas

Há uma legenda ao lado do gráfico por causa de várias linhas em um único gráfico. Você não saberia qual linha representa o quê sem ela. Ainda assim, sua posição à direita pode ser irritante para alguns casos de uso. Veja como colocá-lo no topo:

ggplot(north_big, aes(x = year, y = lifeExp, group = country)) +
  geom_line(aes(color = country), size = 2) +
  geom_point(aes(color = country), size = 5) +
  theme(legend.position = "top")
Imagem 12 - Mudando a posição da legenda

Imagem 12 – Mudando a posição da legenda

Você aprendeu muito até agora, mas ainda há um tópico importante a ser abordado – rótulos.

Adicionando rótulos

Se não houver muitos pontos de dados em um gráfico de linha, pode ser útil adicionar rótulos mostrando os valores exatos. Tenha cuidado com eles – eles podem tornar sua visualização confusa rapidamente.

Veja como plotar a expectativa de vida média nos Estados Unidos e mostrar o texto no topo da linha:

ggplot(usa, aes(x = year, y = lifeExp)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5) +
  geom_text(aes(label = lifeExp))
Imagem 13 - Adicionando texto

Imagem 13 – Adicionando texto

Alguns problemas, no entanto. Os rótulos são um pouco pequenos e estão posicionados logo acima dos marcadores. O snippet de código abaixo torna o texto maior e um pouco mais alto:

ggplot(usa, aes(x = year, y = lifeExp)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5) +
  geom_text(
    aes(label = lifeExp),
    nudge_x = 0.25,
    nudge_y = 0.25,
    check_overlap = TRUE,
    size = 5
  )
Imagem 14 - Estilo de texto

Imagem 14 – Estilo de texto

Mostrar texto pode não ser a solução mais limpa o tempo todo. Talvez você queira que o texto esteja dentro de uma caixa para dar um toque a mais de estilo à sua visualização. Você pode fazer isso substituindo geom_text() com geom_label(). Essa é a única mudança que você precisa fazer:

ggplot(usa, aes(x = year, y = lifeExp)) +
  geom_line(color = "#0099f9", size = 2) +
  geom_point(color = "#0099f9", size = 5) +
  geom_label(
    aes(label = lifeExp),
    nudge_x = 0.25,
    nudge_y = 0.25,
    check_overlap = TRUE
  )
Imagem 15 - Substituindo texto por rótulos

Imagem 15 – Substituindo texto por rótulos

E isso é tudo que você realmente precisa saber sobre rótulos e gráficos de linha para hoje. Vamos encerrar as coisas.

Conclusão

Hoje você aprendeu como fazer gráficos de linhas e como torná-los esteticamente agradáveis. Você aprendeu como alterar cores, largura e tipo de linha, títulos, legendas, legendas, rótulos de eixo e muito mais. Agora você está pronto para incluir gráficos de linha em seus relatórios e painéis. Você pode esperar mais tutoriais R básicos semanais (geralmente aos domingos) e tutoriais mais avançados ao longo da semana. Preencha o formulário de inscrição abaixo para nunca perder uma atualização.

Você é completamente novo no R, mas tem alguma experiência em programação? Confira nosso guia R detalhado para programadores.

Saber mais:

Appsilon está contratando globalmente! Estamos procurando principalmente um Gerente de Engenharia que possa liderar uma equipe de 6 a 8 engenheiros de software ambiciosos. Veja nosso Carreiras página para todas as novas vagas, incluindo vagas para um Gestor de projeto e Gerente de Comunidade.

Artigo Como fazer gráficos de linhas impressionantes em R: Um guia completo com ggplot2 vem de Appsilon | Soluções de ciência de dados de ponta a ponta.



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Leia Também  Melhor presente do dia dos pais