Eu tenho os seguintesggplot
library(ggplot2)
library(zoo)
dat = rbind(data.frame('Quarter' = as.yearqtr(as.Date(c('2000-01-01', '2002-01-01', '2004-01-01', '2006-01-01'))), 'Val' = c(1,2,3,4), type = rep('A', 4)),
data.frame('Quarter' = as.yearqtr(as.Date(c('2000-01-01', '2004-01-01' ))), 'Val' = c(10,11), type = rep('B',2)))
ggplot(dat, aes(x = Quarter, y = Val)) +
geom_bar(aes(fill = type), position = 'dodge', stat = 'identity', width = .5)
Como você pode ver, a largura das barras está variando apesar do argumento de passagem width = .5
. Eu tenho os dados da série temporal, então não quero mudar o eixo x para fatorar.
Existe alguma maneira de corrigir a largura da barra na configuração atual?
geom_bar(stat = "identity")
foi substituído porgeom_col()
há mais de 7 anos, mas isso é incidental aqui. Em ambos os casos, quando você usaposition = "dodge"
, definir owidth
argumento fixará a largura de cada grupo esquivado no eixo x. Se houver apenas uma única barra em algumas posições do eixo x, ela terá largura 0,5. Se você tiver duas barras em uma posição, ambas somarão 0,5 (ou seja, cada uma terá 0,25).Para alterar isso, você precisa especificar a posição como
position = position_dodge(preserve = "single")