As funções scale_*() auxiliam a controlar as escalas das camadas de um gráfico;
# Criar um gráfico de dispersão com o dataset irisggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +geom_point(size =3) +labs(title ="Comprimento vs Largura da Sépala",x ="Comprimento da Sépala",y ="Largura da Sépala") +scale_color_manual(values =c("setosa"="blue", "versicolor"="green", "virginica"="red")) +theme_minimal()
Escalas
Escalas
scale_x_*() - altera o eixo x (Análogo ao eixo y);
scale_colour_*() - altera as cores;
scale_fill_*() - altera os preenchimentos;
scale_size_*() - altera os tamanhos;
scale_shape_*() - altera as formas;
scale_alpha_*() - altera transparência;
Grammar of Graphics: Facetas
Cria tabelas de gráficos dividindo os dados em subconjuntos e apresentando o mesmo gráfico para cada subconjunto;
Discreto x, range & center: geom_crossbar(), geom_pointrange()
Continuo x, range: geom_ribbon()
Continuo x, range & center: geom_smooth(stat = "identity")
Grammar of Graphics: Estatísticas
y <-c(18, 11, 16)df <-data.frame(x =1:3, y = y, se =c(1.2, 0.5, 1.0))base <-ggplot(df, aes(x, y, ymin = y - se, ymax = y + se))base +geom_crossbar()
Grammar of Graphics: Estatísticas
base +geom_pointrange()
Grammar of Graphics: Estatísticas
base +geom_errorbar()
Grammar of Graphics: Estatísticas
base +geom_smooth(stat ="identity")
Grammar of Graphics: Estatísticas
base +geom_linerange()
Grammar of Graphics: Estatísticas
base +geom_ribbon()
Grammar of Graphics: Estatísticas
# Calcular a média e o desvio padrão de mpg para cada número de cilindrosmpg_stats <- mtcars %>%group_by(cyl) %>%summarise(mean_mpg =mean(mpg),sd_mpg =sd(mpg),n =n(),se_mpg = sd_mpg /sqrt(n)) # Erro padrão# Criar o gráfico de barras com barras de erroggplot(mpg_stats, aes(x =as.factor(cyl), y = mean_mpg, fill =as.factor(cyl))) +geom_bar(stat ="identity", color ="black") +geom_errorbar(aes(ymin = mean_mpg - se_mpg, ymax = mean_mpg + se_mpg), width =0.2, color ="black") +labs(title ="Consumo Médio de Combustível por Número de Cilindros",x ="Número de Cilindros",y ="Consumo Médio (mpg)",fill ="Cilindros") +theme_minimal() +theme(plot.title =element_text(hjust =0.5))
Grammar of Graphics: Estatísticas
Grammar of Graphics: Coordenadas
Gráfico de pizza;
coord_polar();
# Resumir os dados para obter a contagem de cada tipo de cortecut_data <- diamonds %>%group_by(cut) %>%summarise(count =n()) %>%mutate(percent = count/sum(count) *100,label =paste0(cut, " (", round(percent, 1), "%)"))# Criar o gráfico de pizzaggplot(cut_data, aes(x ="", y = percent, fill = cut)) +geom_col(width =1, color ="white") +coord_polar(theta ="y") +geom_text(aes(label = label), position =position_stack(vjust =0.5)) +labs(title ="Distribuição dos Cortes de Diamantes",x =NULL,y =NULL,fill ="Tipo de Corte") +theme_void() +theme(plot.title =element_text(hjust =0.5))
Grammar of Graphics: Coordenadas
Grammar of Graphics: Coordenadas
Mapas de calor (Heatmaps) são feitos via geom_tile();
coord_fixed() assegura que as células do mapa de calor sejam quadradas, o que facilita a comparação visual entre as diferentes correlações ou intensidades;
# Calcular a matriz de correlaçãocor_matrix <-cor(mtcars)# Transformar a matriz em um formato longo usando pivot_longercor_data <-as.data.frame(cor_matrix) %>%rownames_to_column(var ="Var1") %>%pivot_longer(cols =-Var1, names_to ="Var2", values_to ="value")# Criar o mapa de calorggplot(cor_data, aes(x = Var1, y = Var2, fill = value)) +geom_tile(color ="white") +scale_fill_gradient2(low ="blue", high ="red", mid ="white", midpoint =0, limit =c(-1, 1), space ="Lab", name="Correlação") +theme_minimal() +theme(axis.text.x =element_text(angle =45, vjust =1, size =12, hjust =1)) +labs(title ="Mapa de Calor das Correlações entre Variáveis",x ="Variáveis",y ="Variáveis") +coord_fixed()
Grammar of Graphics: Coordenadas
Grammar of Graphics: Temas
É a hora de deixar ele com a sua cara;
Alguns temas já são pré-definidos no ggplot2:
theme_bw();
theme_classic();
theme_void();
theme_dark();
theme_light();
Para ampla customização utilizamos a função theme() e passamos os valores utilizando funções element_*();