Gráfico de barras agrupadas associado a pontos ligados por linhas

Boa tarde

Gostaria de individualizar as escalas do eixo Y das barras e pontos ligados por linha do gráfico abaixo.

A ideia é poder aumentar o tamanho das barras e melhorar a visualização, mas os valores do plot de pontos+linhas são maiores deixando as colunas pequenas, uma vez que compartilham o mesmo eixo Y.

Mesmo na busca por soluções estou com muita dificuldade de montar o gráfico dessa maneira.

Segue abaixo o código utilizado e um exemplo do gráfico de como gostaria de deixa-lo.

          dt <- data.frame(periodo = c ("junho", "julho"), 
             peso = c(14.1, 14.51, 12.25, 12.81),  
             atr = c(140.61, 130.29, 131.5, 146.23)) 


dt$ZONA <- rep(c("15", "17"), each = nrow(dt)/2)

# Ordena os níveis da variável período para serem plotados na ordem correta
dt$periodo <- factor(dt$periodo, levels = c("junho", "julho"))

ggplot(dt, aes(periodo, peso, fill = ZONA)) +
geom_col(position = "dodge")

# para linhas, a variável do eixo X  precisa ser contínua
ggplot(dt, aes(as.integer (periodo), atr, color = ZONA)) + 
geom_col(aes(periodo, peso, fill = ZONA, color = NULL),
       position = "dodge") +

 labs(x = "Período",  y = "",  title = "TCH", 
               subtitle = "Ganho de peso mensal") +

geom_line(
data = subset(dt, ZONA == "15"),
position = position_nudge(x = -.25)) +
geom_point(
data = subset(dt, ZONA == "15"),
position = position_nudge(x = -.25)) +
geom_line(
data = subset(dt, ZONA == "17"),
position = position_nudge(x = .25)) +
geom_point(
data = subset(dt, ZONA == "17"),
position = position_nudge(x = .25)) +
scale_color_manual(values = c("darkred", "darkblue")) recuar o texto pré-formatado em 4 
espaços

Oi, Patrick!

Pelo que entendi, você quer mostrar duas variáveis diferentes (com unidades de medidas diferentes) no mesmo eixo. Isso geralmente não é uma boa prática e o ggplot te desencoraja a fazer isso não permitindo, por exemplo, que você construa um segundo eixo y facilmente.

Essas duas informações precisam estar no mesmo gráfico?
Caso isso seja importante, aqui tem um exemplo de como colocar um segundo eixo y: RPubs - Demonstration of dual y-axes (one y-axis left, onother one on the right)using sec.axis - ggplot2 version 2.2.0

Um abraço,

2 curtidas

Olá, William !

Exatamente essa ideia que gostaria de fazer, duas variáveis em escalas diferentes.

Como são poucas as informações do gráfico a ideia seria deixar elas em um único gráfico…

Excelente exemplo !