ggplot2 - Guia rápido

ggplot2 é um pacote R projetado especialmente para visualização de dados e fornece a melhor análise exploratória de dados. Ele fornece tramas lindas e descomplicadas que cuidam de detalhes minuciosos, como desenhar lendas e representá-las. Os gráficos podem ser criados iterativamente e editados posteriormente. Este pacote foi projetado para funcionar em camadas, começando com uma camada que mostra os dados brutos coletados durante a análise de dados exploratória com R, em seguida, adicionando camadas de anotações e resumos estatísticos.

Mesmo os usuários R mais experientes precisam de ajuda para criar gráficos elegantes. Esta biblioteca é uma ferramenta fenomenal para a criação de gráficos em R, mas mesmo depois de muitos anos de uso quase diário, ainda precisamos consultar nossa Folha de Dicas.

Este pacote funciona sob uma gramática profunda chamada de “Gramática dos gráficos”, que é composta por um conjunto de componentes independentes que podem ser criados de várias maneiras. “Gramática de gráficos” é a única razão que torna o ggplot2 muito poderoso porque o desenvolvedor R não se limita a um conjunto de gráficos pré-especificados que são usados ​​em outros pacotes. A gramática inclui um conjunto simples de regras e princípios básicos.

No ano de 2005, Wilkinson criou, ou melhor, originou o conceito de gramática dos gráficos para descrever as características profundas que estão incluídas entre todos os gráficos estatísticos. Ele se concentra nas camadas principais que incluem recursos de adaptação incorporados com R.

Relação entre “Grammar of Graphics” e R

Ele informa ao usuário ou desenvolvedor que um gráfico estatístico é usado para mapear os dados para atributos estéticos, como cor, forma, tamanho dos objetos geométricos em questão, como pontos, linhas e barras. O gráfico também pode conter várias transformações estatísticas dos dados em questão que são desenhados no sistema de coordenadas mencionado. Também inclui um recurso denominado “Facetamento” que geralmente é usado para criar o mesmo gráfico para diferentes subconjuntos do conjunto de dados mencionado. R inclui vários conjuntos de dados embutidos. A combinação desses componentes independentes compõe totalmente um gráfico particular.

Agora vamos nos concentrar em diferentes tipos de gráficos que podem ser criados com referência à gramática -

Dados

Se o usuário quiser visualizar o determinado conjunto de mapeamentos estéticos, que descreve como as variáveis ​​necessárias nos dados são mapeadas juntas para a criação de atributos estéticos mapeados.

Camadas

É composto de elementos geométricos e da transformação estatística necessária. As camadas incluem objetos geométricos, geoms para dados curtos que realmente representam o gráfico com a ajuda de pontos, linhas, polígonos e muito mais. A melhor demonstração é categorizar e contar as observações para criar o histograma específico para resumir o relacionamento 2D de um modelo linear específico.

Balanças

As escalas são usadas para mapear valores no espaço de dados, que é usado para a criação de valores, sejam de cor, tamanho e forma. Ajuda a desenhar uma legenda ou eixos que são necessários para fornecer um mapeamento inverso, tornando possível a leitura dos valores dos dados originais do gráfico mencionado.

Sistema de coordenadas

Ele descreve como as coordenadas de dados são mapeadas juntas para o plano mencionado do gráfico. Ele também fornece informações sobre os eixos e as linhas de grade necessárias para ler o gráfico. Normalmente é usado como um sistema de coordenadas cartesianas que inclui coordenadas polares e projeções de mapas.

Facetamento

Inclui especificações sobre como dividir os dados em subconjuntos necessários e exibir os subconjuntos como múltiplos de dados. Isso também é chamado de processo de condicionamento ou entrelaçamento.

Tema

Ele controla os pontos mais precisos de exibição, como o tamanho da fonte e as propriedades da cor de fundo. Para criar um enredo atraente, é sempre melhor considerar as referências.

Agora, também é igualmente importante discutir as limitações ou recursos que a gramática não oferece -

  • Falta a sugestão de quais gráficos devem ser usados ​​ou o usuário está interessado em fazer.

  • Ele não descreve a interatividade, pois inclui apenas a descrição de gráficos estáticos. Para a criação de gráficos dinâmicos, outra solução alternativa deve ser aplicada.

O gráfico simples criado com ggplot2 é mencionado abaixo -

Os pacotes R vêm com vários recursos, como analisar informações estatísticas ou obter pesquisas aprofundadas de dados geoespaciais ou, simplesmente, podemos criar relatórios básicos.

Pacotes de R podem ser definidos como funções R, dados e código compilado em um formato bem definido. A pasta ou diretório onde os pacotes são armazenados é chamada de biblioteca.

Como visível na figura acima, libPaths () é a função que exibe a biblioteca que está localizada, e a biblioteca de funções mostra os pacotes que estão salvos na biblioteca.

R inclui várias funções que manipulam os pacotes. Vamos nos concentrar em três funções principais que são usadas principalmente, elas são -

  • Instalando Pacote
  • Carregando um pacote
  • Aprendendo sobre o pacote

A sintaxe com função para instalar um pacote em R é -

Install.packages(“<package-name>”)

A simples demonstração de instalação de um pacote pode ser vista abaixo. Considere que precisamos instalar o pacote “ggplot2” que é a biblioteca de visualização de dados, a seguinte sintaxe é usada -

Install.packages(“ggplot2”)

Para carregar o pacote específico, precisamos seguir a sintaxe mencionada abaixo -

Library(<package-name>)

O mesmo se aplica ao ggplot2 conforme mencionado abaixo -

library(“ggplot2”)

A saída é ilustrada no instantâneo abaixo -

Para entender a necessidade do pacote necessário e da funcionalidade básica, o R fornece a função de ajuda que fornece os detalhes completos do pacote instalado.

A sintaxe completa é mencionada abaixo -

help(ggplot2)

Neste capítulo, vamos nos concentrar na criação de um gráfico simples com a ajuda de ggplot2. Usaremos os seguintes passos para criar o gráfico padrão em R.

Inclusão de biblioteca e conjunto de dados no espaço de trabalho

Inclua a biblioteca em R. Carregando o pacote necessário. Agora vamos nos concentrar no pacote ggplot2.

# Load ggplot2 
library(ggplot2)

Implementaremos um conjunto de dados chamado “Iris”. O conjunto de dados contém 3 classes de 50 instâncias cada, onde cada classe se refere a um tipo de planta de íris. Uma classe é linearmente separável das outras duas; os últimos NÃO são linearmente separáveis ​​uns dos outros.

# Read in dataset
data(iris)

A lista de atributos incluídos no conjunto de dados é fornecida abaixo -

Usando atributos para plotagem de amostra

Traçar o gráfico do conjunto de dados da íris com ggplot2 de maneira mais simples envolve a seguinte sintaxe -

# Plot
IrisPlot <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) 
   + geom_point()
print(IrisPlot)

O primeiro parâmetro leva o conjunto de dados como entrada, o segundo parâmetro menciona a legenda e os atributos que precisam ser plotados no banco de dados. Neste exemplo, estamos usando a legenda Species. Geom_point () implica plotagem dispersa que será discutida em detalhes no capítulo posterior.

A saída gerada é mencionada abaixo -

Aqui, podemos modificar o título, rótulo x e rótulo y, o que significa rótulos do eixo xey em formato sistemático, conforme mostrado abaixo -

print(IrisPlot + labs(y="Petal length (cm)", x = "Sepal length (cm)") 
   + ggtitle("Petal and sepal length of iris"))

Quando falamos de eixos em gráficos, trata-se de eixos xey, que são representados de maneira bidimensional. Neste capítulo, vamos nos concentrar em dois conjuntos de dados “Plantgrowth” e “Iris” que são comumente usados ​​por cientistas de dados.

Implementando eixos no conjunto de dados Iris

Usaremos as seguintes etapas para trabalhar nos eixos xey usando o pacote ggplot2 de R.

É sempre importante carregar a biblioteca para obter as funcionalidades do pacote.

# Load ggplot
library(ggplot2)

# Read in dataset
data(iris)

Criação dos pontos de plotagem

Como discutido no capítulo anterior, criaremos um gráfico com pontos. Em outras palavras, é definido como plotagem dispersa.

# Plot
p <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) + geom_point()
p

Agora vamos entender a funcionalidade do aes que menciona a estrutura de mapeamento do “ggplot2”. Os mapeamentos estéticos descrevem a estrutura de variáveis ​​necessária para a plotagem e os dados que devem ser gerenciados em formato de camada individual.

O resultado é dado abaixo -

Destacar e marcar

Trace os marcadores com as coordenadas mencionadas dos eixos xey conforme mencionado abaixo. Inclui adicionar texto, repetir texto, realçar uma área específica e adicionar segmento da seguinte forma -

# add text
p + annotate("text", x = 6, y = 5, label = "text")

# add repeat
p + annotate("text", x = 4:6, y = 5:7, label = "text")

# highlight an area
p + annotate("rect", xmin = 5, xmax = 7, ymin = 4, ymax = 6, alpha = .5)

# segment
p + annotate("segment", x = 5, xend = 7, y = 4, yend = 5, colour = "black")

A saída gerada para adicionar texto é fornecida abaixo -

A repetição de um texto específico com as coordenadas mencionadas gera a seguinte saída. O texto é gerado com coordenadas x de 4 a 6 ey coordenadas de 5 a 7 -

A segmentação e o destaque da produção de uma área particular são dados abaixo -

Conjunto de dados PlantGrowth

Agora vamos nos concentrar em trabalhar com outro conjunto de dados chamado “Plantgrowth” e a etapa necessária é fornecida abaixo.

Ligue para a biblioteca e confira os atributos de “Plantgrowth”. Este conjunto de dados inclui resultados de um experimento para comparar os rendimentos (medidos pelo peso seco das plantas) obtidos sob um controle e duas condições de tratamento diferentes.

> PlantGrowth
  weight group
1 4.17 ctrl
2 5.58 ctrl
3 5.18 ctrl
4 6.11 ctrl
5 4.50 ctrl
6 4.61 ctrl
7 5.17 ctrl
8 4.53 ctrl
9 5.33 ctrl
10 5.14 ctrl
11 4.81 trt1
12 4.17 trt1
13 4.41 trt1
14 3.59 trt1
15 5.87 trt1
16 3.83 trt1
17 6.03 trt1

Adicionando atributos com eixos

Tente traçar um gráfico simples com os eixos xey necessários do gráfico, conforme mencionado abaixo -

> bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) +
+    geom_point()
> bp

A saída gerada é fornecida abaixo -

Finalmente, podemos deslizar os eixos xey de acordo com nossos requisitos com a função básica mencionada abaixo -

> bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) +
+    geom_point()
> bp

Basicamente, podemos usar muitas propriedades com mapeamentos estéticos para trabalhar com eixos usando ggplot2.

Os eixos e as legendas são chamados coletivamente de guias. Eles nos permitem ler as observações do gráfico e mapeá-las de volta em relação aos valores originais. As chaves de legenda e rótulos de escala são determinados pelas quebras de escala. As legendas e os eixos são produzidos automaticamente com base nas respectivas escalas e geoms que são necessários para o gráfico.

As etapas a seguir serão implementadas para entender o funcionamento das legendas no ggplot2 -

Inclusão de pacote e conjunto de dados no espaço de trabalho

Vamos criar o mesmo gráfico para focar na legenda do gráfico gerado com ggplot2 -

> # Load ggplot
> library(ggplot2)
>
> # Read in dataset
> data(iris)
>
> # Plot
> p <- ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) + geom_point()
> p

Se você observar o gráfico, as legendas são criadas nos cantos mais à esquerda, conforme mencionado abaixo -

Aqui, a legenda inclui vários tipos de espécies do conjunto de dados fornecido.

Alterar atributos para legendas

Podemos remover a legenda com a ajuda da propriedade “legend.position” e obter a saída apropriada -

> # Remove Legend
> p + theme(legend.position="none")

Também podemos ocultar o título da legenda com a propriedade “element_blank ()” conforme fornecido abaixo -

> # Hide the legend title
> p + theme(legend.title=element_blank())

Também podemos usar a posição da legenda como e quando necessário. Esta propriedade é usada para gerar a representação precisa do gráfico.

> #Change the legend position
> p + theme(legend.position="top")
>
> p + theme(legend.position="bottom")

Top representation

Bottom representation

Alterar o estilo da fonte das legendas

Podemos alterar o estilo da fonte e o tipo de fonte do título e outros atributos da legenda conforme mencionado abaixo -

> #Change the legend title and text font styles
> # legend title
> p + theme(legend.title = element_text(colour = "blue", size = 10, + face = "bold"))
> # legend labels
> p + theme(legend.text = element_text(colour = "red", size = 8, + face = "bold"))

A saída gerada é fornecida abaixo -

Os próximos capítulos enfocarão vários tipos de gráficos com várias propriedades de fundo, como cor, temas e a importância de cada um deles do ponto de vista da ciência de dados.

Os gráficos de dispersão são semelhantes aos gráficos de linha geralmente usados ​​para plotagem. Os gráficos de dispersão mostram o quanto uma variável está relacionada a outra. A relação entre as variáveis ​​é chamada de correlação, geralmente usada em métodos estatísticos. Usaremos o mesmo conjunto de dados chamado “Iris” que inclui muitas variações entre cada variável. Este é o famoso conjunto de dados que fornece medidas em centímetros das variáveis ​​comprimento e largura da sépala com comprimento e largura da pétala para 50 flores de cada uma das 3 espécies de íris. As espécies são denominadas Iris setosa, versicolor e virginica.

Criação de gráfico de dispersão básico

As etapas a seguir estão envolvidas para criar gráficos de dispersão com o pacote “ggplot2” -

Para criar um gráfico de dispersão básico, o seguinte comando é executado -

> # Basic Scatter Plot
> ggplot(iris, aes(Sepal.Length, Petal.Length)) +
+    geom_point()

Adicionando atributos

Podemos mudar a forma dos pontos com uma propriedade chamada forma na função geom_point ().

> # Change the shape of points
> ggplot(iris, aes(Sepal.Length, Petal.Length)) +
+    geom_point(shape=1)

Podemos adicionar cor aos pontos que são adicionados nos gráficos de dispersão necessários.

> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1)

Neste exemplo, criamos cores de acordo com as espécies que são mencionadas nas lendas. As três espécies são distinguidas de forma única no lote mencionado.

Agora vamos nos concentrar em estabelecer a relação entre as variáveis.

> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm)

geom_smooth A função auxilia no padrão de sobreposição e na criação do padrão de variáveis ​​necessárias.

O método de atributo “lm” menciona a linha de regressão que precisa ser desenvolvida.

> # Add a regression line
> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm)

Também podemos adicionar uma linha de regressão sem região de confiança sombreada com a sintaxe mencionada abaixo -

># Add a regression line but no shaded confidence region
> ggplot(iris, aes(Sepal.Length, Petal.Length, colour=Species)) +
+    geom_point(shape=1) +
+    geom_smooth(method=lm, se=FALSE)

As regiões sombreadas representam coisas diferentes das regiões de confiança.

Gráficos de jitter

Os gráficos de jitter incluem efeitos especiais com os quais gráficos dispersos podem ser representados. Jitter nada mais é do que um valor aleatório que é atribuído a pontos para separá-los conforme mencionado abaixo -

> ggplot(mpg, aes(cyl, hwy)) +
+    geom_point() +
+    geom_jitter(aes(colour = class))

Os gráficos de barra representam os dados categóricos de maneira retangular. As barras podem ser plotadas verticalmente e horizontalmente. As alturas ou comprimentos são proporcionais aos valores representados nos gráficos. Os eixos xey dos gráficos de barra especificam a categoria que está incluída no conjunto de dados específico.

O histograma é um gráfico de barras que representa os dados brutos com uma imagem clara da distribuição do conjunto de dados mencionado.

Neste capítulo, vamos nos concentrar na criação de gráficos de barras e histogramas com a ajuda de ggplot2.

Compreendendo o conjunto de dados MPG

Vamos entender o conjunto de dados que será usado. O conjunto de dados Mpg contém um subconjunto dos dados de economia de combustível que a EPA disponibiliza no link abaixo -

http://fueleconomy.gov

Ele consiste em modelos que tiveram um novo lançamento a cada ano entre 1999 e 2008. Isso foi usado como um proxy para a popularidade do carro.

O comando a seguir é executado para entender a lista de atributos necessários para o conjunto de dados.

> library(ggplot2)

O pacote anexado é ggplot2.

O seguinte objeto é mascarado _by_ .GlobalEnv -

mpg

Mensagens de advertência

  • pacote arules foi construído sob R versão 3.5.1
  • pacote tuneR foi construído sob R versão 3.5.3
  • pacote ggplot2 foi construído sob R versão 3.5.3

Criação de gráfico de contagem de barras

O gráfico de contagem de barras pode ser criado com o gráfico abaixo mencionado -

> # A bar count plot
> p <- ggplot(mpg, aes(x=factor(cyl)))+
+    geom_bar(stat="count")
> p

geom_bar () é a função que é usada para criar gráficos de barra. Leva o atributo de valor estatístico denominado contagem.

Histograma

O gráfico de contagem de histograma pode ser criado com o gráfico abaixo mencionado -

> # A historgram count plot
> ggplot(data=mpg, aes(x=hwy)) +
+    geom_histogram( col="red",
+       fill="green",
+       alpha = .2,
+       binwidth = 5)

geom_histogram () inclui todos os atributos necessários para criar um histograma. Aqui, leva o atributo de hwy com a respectiva contagem. A cor é obtida de acordo com os requisitos.

Gráfico de Barras Empilhadas

Os gráficos gerais de gráficos de barras e histogramas podem ser criados conforme abaixo -

> p <- ggplot(mpg, aes(class))
> p + geom_bar()
> p + geom_bar()

Este gráfico inclui todas as categorias definidas em gráficos de barras com a respectiva classe. Este gráfico é chamado de gráfico empilhado.

Um gráfico de pizza é considerado um gráfico estatístico circular, que é dividido em fatias para ilustrar a proporção numérica. No gráfico de pizza mencionado, o comprimento do arco de cada fatia é proporcional à quantidade que ela representa. O comprimento do arco representa o ângulo do gráfico de pizza. Os graus totais do gráfico de pizza são 360 graus. O gráfico de semicírculo ou semi-pizza compreende 180 graus.

Criação de gráficos de pizza

Carregue o pacote no espaço de trabalho mencionado conforme mostrado abaixo -

> # Load modules
> library(ggplot2)
>
> # Source: Frequency table
> df <- as.data.frame(table(mpg$class))
> colnames(df) <- c("class", "freq")

O gráfico de amostra pode ser criado usando o seguinte comando -

> pie <- ggplot(df, aes(x = "", y=freq, fill = factor(class))) +
+ geom_bar(width = 1, stat = "identity") +
+ theme(axis.line = element_blank(),
+    plot.title = element_text(hjust=0.5)) +
+    labs(fill="class",
+       x=NULL,
+       y=NULL, 
+       title="Pie Chart of class",
+       caption="Source: mpg")
> pie

Se você observar a saída, o diagrama não é criado de maneira circular, conforme mencionado abaixo -

Criação de coordenadas

Vamos executar o seguinte comando para criar o gráfico de pizza necessário da seguinte maneira -

> pie + coord_polar(theta = "y", start=0)

Neste capítulo, vamos discutir sobre os gráficos marginais.

Compreendendo os gráficos marginais

Os gráficos marginais são usados ​​para avaliar a relação entre duas variáveis ​​e examinar suas distribuições. Quando falamos sobre a criação de gráficos marginais, eles nada mais são do que gráficos de dispersão que têm histogramas, gráficos de caixa ou gráficos de pontos nas margens dos respectivos eixos xey.

As etapas a seguir serão usadas para criar um gráfico marginal com R usando o pacote “ggExtra”. Este pacote é projetado para aprimorar os recursos do pacote “ggplot2” e inclui várias funções para criar plotagens marginais de sucesso.

Passo 1

Instale o pacote “ggExtra” usando o seguinte comando para uma execução bem-sucedida (se o pacote não estiver instalado em seu sistema).

> install.packages("ggExtra")

Passo 2

Inclua as bibliotecas necessárias na área de trabalho para criar plotagens marginais.

> library(ggplot2)
> library(ggExtra)

etapa 3

Lendo o conjunto de dados necessário “mpg” que usamos nos capítulos anteriores.

> data(mpg)
> head(mpg)
# A tibble: 6 x 11
manufacturer   model  displ   year   cyl   trans      drv   cty   hwy  fl  class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi         a4     1.8     1999   4     auto(l5)   f     18    29   p   compa~
2 audi         a4     1.8     1999   4     manual(m5) f     21    29   p   compa~
3 audi         a4     2       2008   4     manual(m6) f     20    31   p   compa~
4 audi         a4     2       2008   4     auto(av)   f     21    30   p   compa~
5 audi         a4     2.8     1999   6     auto(l5)   f     16    26   p   compa~
6 audi         a4     2.8     1999   6     manual(m5) f     18    26   p   compa~
>

Passo 4

Agora vamos criar um gráfico simples usando “ggplot2” que nos ajudará a entender o conceito de gráficos marginais.

> #Plot
> g <- ggplot(mpg, aes(cty, hwy)) +
+    geom_count() +
+    geom_smooth(method="lm", se=F)
> g

Relação entre Variáveis

Agora vamos criar os gráficos marginais usando a função ggMarginal que ajuda a gerar relacionamento entre dois atributos “hwy” e “cty”.

> ggMarginal(g, type = "histogram", fill="transparent")
> ggMarginal(g, type = "boxplot", fill="transparent")

A saída para gráficos marginais de histograma é mencionada abaixo -

A saída para gráficos marginais de caixa é mencionada abaixo -

Os gráficos de bolha nada mais são do que gráficos de bolha que são basicamente um gráfico de dispersão com uma terceira variável numérica usada para o tamanho do círculo. Neste capítulo, vamos nos concentrar na criação de gráficos de contagem de barras e de contagem de histogramas, que são considerados réplicas de gráficos de bolhas.

As etapas a seguir são usadas para criar gráficos de bolhas e contar gráficos com o pacote mencionado -

Compreendendo o conjunto de dados

Carregue o respectivo pacote e o conjunto de dados necessário para criar os gráficos de bolha e gráficos de contagem.

> # Load ggplot
> library(ggplot2)
>
> # Read in dataset
> data(mpg)
> head(mpg)
# A tibble: 6 x 11
manufacturer  model  displ  year  cyl  trans      drv   cty  hwy  fl  class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi        a4     1.8    1999  4    auto(l5)   f     18   29   p   compa~
2 audi        a4     1.8    1999  4    manual(m5) f     21   29   p   compa~
3 audi        a4     2      2008  4    manual(m6) f     20   31   p   compa~
4 audi        a4     2      2008  4    auto(av)   f     21   30   p   compa~
5 audi        a4     2.8    1999  6    auto(l5)   f     16   26   p   compa~
6 audi        a4     2.8    1999  6    manual(m5) f     18   26   p   compa~

O gráfico de contagem de barras pode ser criado usando o seguinte comando -

> # A bar count plot
> p <- ggplot(mpg, aes(x=factor(cyl)))+
+ geom_bar(stat="count")
> p

Análise com Histogramas

O gráfico de contagem de histograma pode ser criado usando o seguinte comando -

> # A historgram count plot
> ggplot(data=mpg, aes(x=hwy)) +
+    geom_histogram( col="red",
+       fill="green",
+       alpha = .2,
+       binwidth = 5)

Gráficos de bolhas

Agora vamos criar o gráfico de bolha mais básico com os atributos necessários para aumentar a dimensão dos pontos mencionados no gráfico espalhado.

ggplot(mpg, aes(x=cty, y=hwy, size = pop)) +geom_point(alpha=0.7)

O gráfico descreve a natureza dos fabricantes incluídos no formato de legenda. Os valores representados incluem várias dimensões do atributo “hwy”.

Nos capítulos anteriores, demos uma olhada em vários tipos de gráficos que podem ser criados usando o pacote “ggplot2”. Agora vamos nos concentrar na variação do mesmo, como gráficos de barras divergentes, gráficos de pirulito e muitos mais. Para começar, começaremos com a criação de gráficos de barras divergentes e as etapas a serem seguidas são mencionadas abaixo -

Entendendo o conjunto de dados

Carregue o pacote necessário e crie uma nova coluna chamada 'nome do carro' dentro do conjunto de dados mpg.

#Load ggplot
> library(ggplot2)
> # create new column for car names
> mtcars$`car name` <- rownames(mtcars)
> # compute normalized mpg
> mtcars$mpg_z <- round((mtcars$mpg - mean(mtcars$mpg))/sd(mtcars$mpg), 2)
> # above / below avg flag
> mtcars$mpg_type <- ifelse(mtcars$mpg_z < 0, "below", "above")
> # sort
> mtcars <- mtcars[order(mtcars$mpg_z), ]

O cálculo acima envolve a criação de uma nova coluna para nomes de carros, computando o conjunto de dados normalizado com a ajuda da função round. Também podemos usar a sinalização avg acima e abaixo para obter os valores da funcionalidade “tipo”. Posteriormente, classificamos os valores para criar o conjunto de dados necessário.

A saída recebida é a seguinte -

Converta os valores em fator para manter a ordem de classificação em um gráfico específico, conforme mencionado abaixo -

> # convert to factor to retain sorted order in plot.
> mtcars$`car name` <- factor(mtcars$`car name`, levels = mtcars$`car name`)

A saída obtida é mencionada abaixo -

Gráfico de Barras Divergentes

Agora crie um gráfico de barras divergente com os atributos mencionados, que é considerado como coordenadas necessárias.

> # Diverging Barcharts
> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_bar(stat='identity', aes(fill=mpg_type), width=.5) +
+ scale_fill_manual(name="Mileage",
+    labels = c("Above Average", "Below Average"),
+    values = c("above"="#00ba38", "below"="#f8766d")) +
+ labs(subtitle="Normalised mileage from 'mtcars'",
+    title= "Diverging Bars") +
+ coord_flip()

Note - Um gráfico de barras divergente marca para alguns membros da dimensão apontando para cima ou para baixo em relação aos valores mencionados.

A saída do gráfico de barras divergente é mencionada abaixo, onde usamos a função geom_bar para criar um gráfico de barras -

Gráfico de pirulito divergente

Crie um gráfico pirulito divergente com os mesmos atributos e coordenadas, apenas com a mudança de função a ser usada, ou seja, geom_segment () que ajuda na criação dos gráficos pirulito.

> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+ geom_point(stat='identity', fill="black", size=6) +
+ geom_segment(aes(y = 0,
+    x = `car name`,
+    yend = mpg_z,
+    xend = `car name`),
+       color = "black") +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Lollipop Chart",
+    subtitle="Normalized mileage from 'mtcars': Lollipop") +
+ ylim(-2.5, 2.5) +
+ coord_flip()

Diverging Dot Plot

Crie um gráfico de pontos divergentes de maneira semelhante, onde os pontos representam os pontos em gráficos dispersos em dimensões maiores.

> ggplot(mtcars, aes(x=`car name`, y=mpg_z, label=mpg_z)) +
+  geom_point(stat='identity', aes(col=mpg_type), size=6) +
+  scale_color_manual(name="Mileage",
+     labels = c("Above Average", "Below Average"),
+     values = c("above"="#00ba38", "below"="#f8766d")) +
+ geom_text(color="white", size=2) +
+ labs(title="Diverging Dot Plot",
+     subtitle="Normalized mileage from 'mtcars': Dotplot") +
+ ylim(-2.5, 2.5) +
+ coord_flip()

Aqui, as legendas representam os valores “Acima da média” e “Abaixo da média” com cores distintas de verde e vermelho. O gráfico de pontos transmite informações estáticas. Os princípios são iguais aos do gráfico de barras Diverging, exceto que apenas pontos são usados.

Neste capítulo, vamos nos concentrar no uso do tema personalizado, usado para alterar a aparência e o comportamento do espaço de trabalho. Usaremos o pacote “ggthemes” para entender o conceito de gerenciamento do tema no espaço de trabalho de R.

Vamos implementar as etapas a seguir para usar o tema necessário no conjunto de dados mencionado.

GGTHEMES

Instale o pacote “ggthemes” com o pacote necessário no espaço de trabalho R.

> install.packages("ggthemes")
> Library(ggthemes)

Implementar novo tema para gerar lendas de fabricantes com ano de produção e deslocamento.

> library(ggthemes)
> ggplot(mpg, aes(year, displ, color=factor(manufacturer)))+
+ geom_point()+ggtitle("This plot looks a lot different from the default")+
+ theme_economist()+scale_colour_economist()

Pode-se observar que o tamanho padrão do texto do tick, legendas e outros elementos são pouco pequenos com o gerenciamento de tema anterior. É incrivelmente fácil alterar o tamanho de todos os elementos de texto de uma vez. Isso pode ser feito criando um tema customizado que podemos observar na etapa a seguir que os tamanhos de todos os elementos são relativos (rel ()) ao base_size.

> theme_set(theme_gray(base_size = 30))
> ggplot(mpg, aes(x=year, y=class))+geom_point(color="red")

Plotagens de múltiplos painéis significam a criação de plotagem de múltiplos gráficos juntos em uma única plotagem. Usaremos a função par () para colocar vários gráficos em um único gráfico, passando os parâmetros gráficos mfrow e mfcol.

Aqui, usaremos o conjunto de dados “AirQuality” para implementar gráficos de vários painéis. Vamos entender o conjunto de dados primeiro para dar uma olhada na criação de gráficos de vários painéis. Este conjunto de dados inclui Contém as respostas de um dispositivo multissensor de gás implantado no campo em uma cidade italiana. As médias das respostas por hora são registradas junto com as referências das concentrações de gás de um analisador certificado.

Visão da função par ()

Compreenda a função par () para criar uma dimensão dos gráficos de vários painéis necessários.

> par(mfrow=c(1,2))
> # set the plotting area into a 1*2 array

Isso cria um gráfico em branco com dimensão de 1 * 2.

Agora crie o gráfico de barras e o gráfico de pizza do conjunto de dados mencionado usando o seguinte comando. Este mesmo fenômeno pode ser alcançado com o parâmetro gráfico mfcol.

Criação de gráficos de vários painéis

A única diferença entre os dois é que mfrow preenche a linha da região do subplot, enquanto mfcol preenche a coluna.

> Temperature <- airquality$Temp
> Ozone <- airquality$Ozone
> par(mfrow=c(2,2))
> hist(Temperature)
> boxplot(Temperature, horizontal=TRUE)
> hist(Ozone)
> boxplot(Ozone, horizontal=TRUE)

Os boxplots e barplots são criados em uma única janela, basicamente criando gráficos de vários painéis.

O mesmo gráfico com uma mudança de dimensões na função par seria o seguinte -

par(mfcol = c(2, 2))

Neste capítulo, vamos nos concentrar na criação de gráficos múltiplos que podem ser usados ​​posteriormente para criar gráficos tridimensionais. A lista de parcelas que serão cobertas inclui -

  • Gráfico de densidade
  • Box Plot
  • Dot Plot
  • Enredo de violino

Usaremos o conjunto de dados “mpg” como usado nos capítulos anteriores. Este conjunto de dados fornece dados de economia de combustível de 1999 e 2008 para 38 modelos populares de carros. O conjunto de dados é enviado com o pacote ggplot2. É importante seguir o passo abaixo mencionado para criar diferentes tipos de parcelas.

> # Load Modules
> library(ggplot2)
>
> # Dataset
> head(mpg)
# A tibble: 6 x 11
manufacturer  model   displ   year   cyl   trans       drv   cty   hwy  fl   class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi        a4      1.8     1999   4     auto(l5)    f     18    29   p    compa~
2 audi        a4      1.8     1999   4     manual(m5)  f     21    29   p    compa~
3 audi        a4      2       2008   4     manual(m6)  f     20    31   p    compa~
4 audi        a4      2       2008   4     auto(av)    f     21    30   p    compa~
5 audi        a4      2.8     1999   6     auto(l5)    f     16    26   p    compa~
6 audi        a4      2.8     1999   6     manual(m5)  f     18    26   p    compa~

Gráfico de densidade

Um gráfico de densidade é uma representação gráfica da distribuição de qualquer variável numérica no conjunto de dados mencionado. Ele usa uma estimativa de densidade de kernel para mostrar a função de densidade de probabilidade da variável.

O pacote “ggplot2” inclui uma função chamada geom_density () para criar um gráfico de densidade.

Vamos executar o seguinte comando para criar um gráfico de densidade -

> p −- ggplot(mpg, aes(cty)) +
+  geom_density(aes(fill=factor(cyl)), alpha=0.8)
> p

Podemos observar várias densidades do gráfico criado abaixo -

Podemos criar o gráfico renomeando os eixos xey, o que mantém melhor clareza com inclusão de título e legendas com diferentes combinações de cores.

> p + labs(title="Density plot",
+    subtitle="City Mileage Grouped by Number of cylinders",
+    caption="Source: mpg",
+    x="City Mileage",
+    fill="# Cylinders")

Box Plot

O gráfico de caixa também chamado de gráfico de caixa e bigode representa o resumo de cinco números dos dados. Os cinco resumos de números incluem valores como mínimo, primeiro quartil, mediana, terceiro quartil e máximo. A linha vertical que passa pela parte central do gráfico de caixa é considerada como “mediana”.

Podemos criar box plot usando o seguinte comando -

> p <- ggplot(mpg, aes(class, cty)) +
+  geom_boxplot(varwidth=T, fill="blue")
> p + labs(title="A Box plot Example",
+    subtitle="Mileage by Class",
+    caption="MPG Dataset",
+    x="Class",
+    y="Mileage")
>p

Aqui, estamos criando um gráfico de caixa com relação aos atributos de classe e cty.

Dot Plot

Os gráficos de pontos são semelhantes aos gráficos dispersos, apenas com diferença de dimensão. Nesta seção, iremos adicionar o gráfico de pontos ao gráfico de caixa existente para ter uma imagem melhor e clareza.

O box plot pode ser criado usando o seguinte comando -

> p <- ggplot(mpg, aes(manufacturer, cty)) +
+    geom_boxplot() +
+    theme(axis.text.x = element_text(angle=65, vjust=0.6))
> p

O gráfico de pontos é criado conforme mencionado abaixo -

> p + geom_dotplot(binaxis='y',
+    stackdir='center',
+    dotsize = .5
+    )

Enredo de violino

O enredo do violino também é criado de maneira semelhante, apenas com a mudança da estrutura dos violinos em vez da caixa. O resultado é claramente mencionado abaixo -

> p <- ggplot(mpg, aes(class, cty))
>
> p + geom_violin()

Existem maneiras de alterar toda a aparência de seu gráfico com uma função, conforme mencionado abaixo. Mas se você quiser simplesmente mudar a cor de fundo do painel, use o seguinte -

Plano de fundo do painel de implementação

Podemos mudar a cor de fundo usando o seguinte comando que ajuda a mudar o painel (panel.background) -

> ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+ theme(panel.background = element_rect(fill = 'grey75'))

A mudança na cor é claramente ilustrada na imagem abaixo -

Implementando Panel.grid.major

Podemos alterar as linhas da grade usando a propriedade “panel.grid.major” conforme mencionado no comando abaixo -

> ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+    theme(panel.background = element_rect(fill = 'grey75'),
+    panel.grid.major = element_line(colour = "orange", size=2),
+    panel.grid.minor = element_line(colour = "blue"))

Podemos até mesmo alterar o fundo do gráfico, especialmente excluindo o painel usando a propriedade “plot.background” conforme mencionado abaixo -

ggplot(iris, aes(Sepal.Length, Species))+geom_point(color="firebrick")+
+   theme(plot.background = element_rect(fill = 'pink'))

Uma série temporal é um gráfico que representa a série de pontos de dados em uma ordem de tempo específica. Uma série temporal é uma sequência obtida com uma sequência em pontos sucessivos com espaçamento igual. As séries temporais podem ser consideradas como dados em tempo discreto. O conjunto de dados que usaremos neste capítulo é um conjunto de dados de “economia” que inclui todos os detalhes das séries de tempo econômicas dos EUA.

O dataframe inclui os seguintes atributos mencionados abaixo -

Encontro Mês de coleta de dados
Psavert Taxa de poupança pessoal
Pce Despesa de consumo pessoal
Desempregar Número de desempregados em milhares
Não empatado Duração média do desemprego
Pop População total em milhares

Carregue os pacotes necessários e defina o tema padrão para criar uma série temporal.

> library(ggplot2)
> theme_set(theme_minimal())
> # Demo dataset
> head(economics)
# A tibble: 6 x 6
date           pce            pop          psavert       uempmed       unemploy
<date>         <dbl>         <dbl>         <dbl>         <dbl>         <dbl>
1 1967-07-01    507.          198712        12.6          4.5           2944
2 1967-08-01    510.          198911        12.6          4.7           2945
3 1967-09-01    516.          199113        11.9          4.6           2958
4 1967-10-01    512.          199311        12.9          4.9           3143
5 1967-11-01    517.          199498        12.8          4.7           3066
6 1967-12-01    525.          199657        11.8          4.8           3018

Crie um gráfico de linha básico que cria uma estrutura de série temporal.

> # Basic line plot
> ggplot(data = economics, aes(x = date, y = pop))+
+ geom_line(color = "#00AFBB", size = 2)

Podemos plotar o subconjunto de dados usando o seguinte comando -

> # Plot a subset of the data
> ss <- subset(economics, date > as.Date("2006-1-1"))
> ggplot(data = ss, aes(x = date, y = pop)) +
+ geom_line(color = "#FC4E07", size = 2)

Criando Séries Temporais

Aqui, plotaremos as variáveis ​​psavert e uempmed por datas. Aqui devemos remodelar os dados usando o pacote tidyr. Isso pode ser obtido recolhendo os valores psavert e uempmed na mesma coluna (nova coluna). Função R: recolher () [tidyr]. A próxima etapa envolve a criação de uma variável de agrupamento que com levels = psavert e uempmed.

> library(tidyr)
> library(dplyr)
Attaching package: ‘dplyr’
The following object is masked from ‘package:ggplot2’: vars
The following objects are masked from ‘package:stats’: filter, lag
The following objects are masked from ‘package:base’: intersect, setdiff, setequal, union
> df <- economics %>%
+    select(date, psavert, uempmed) %>%
+    gather(key = "variable", value = "value", -date)
> head(df, 3)
# A tibble: 3 x 3
date          variable     value
<date> <chr>   <dbl>
1 1967-07-01   psavert       12.6
2 1967-08-01   psavert       12.6
3 1967-09-01   psavert       11.9

Crie gráficos de várias linhas usando o seguinte comando para ver a relação entre “psavert” e “desempmed” -

> ggplot(df, aes(x = date, y = value)) +
+    geom_line(aes(color = variable), size = 1) +
+    scale_color_manual(values = c("#00AFBB", "#E7B800")) +
+    theme_minimal()