Como ajustar o eixo da escala de tempo para o histograma de ggplot
Pergunta
Estou trabalhando com um quadro de dados onde uma das colunas consiste em POSIXct
valores de data-hora. Estou tentando plotar um histograma desses registros de data e hora usando ggplot2
Mas estou tendo dois problemas:
Eu não sei como definir a largura em
geom_histogram()
. Eu gostaria de colocar cada lixeira em um dia ou uma semana. Tentei fornecer um objeto diferente, mas recebo um erro. Eu também tenteibinwidth=1
Mas R apenas pendura.Como faço para definir os limites em
scale_x_time()
? A única maneira de conseguir que o funcionasse foi converter meuPOSIXct
Timestamps usandoas.Date()
.
Solução
- A largura é medida em segundos, então para lixar por semana
binwidth=7*24*60*60
. - Os limites podem ser dados como um vetor de 2 objetos posixct.
Um exemplo:
y<-as.POSIXct('1970/01/01')+cumsum(rnorm(100,mean=24*60*60,sd=24*60*60))
p<-qplot(y,binwidth=7*24*60*60,fill=I('steelblue'),col=I('black'))
p<-p+scale_x_datetime(major="1 week",
minor="1 days",
format="%e/%m/%Y",
limits=c(as.POSIXct('1970/02/01'),
as.POSIXct('1970/03/31')))
print(p)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow