Eu tento plotar os dados com R ggplot, mas o rótulo de tempo não pode ser exibido no eixo x corretamente. Qualquer conselho será muito apreciado.
Veja como são os dados de exemplo:
structure(list(activity = c("Running", "Running", "Running",
"Running", "Running", "Running", "Running", "Running", "Running",
"Running"), time = structure(c(-2209064400, -2209064100, -2209063800,
-2209063500, -2209063200, -2209062900, -2209062600, -2209062300,
-2209062000, -2209061700), tzone = "UTC", class = c("POSIXct",
"POSIXt")), level = c(0.0450582956975968, 0.049786810752437,
0.049786810752437, 0.0409378662803991, 0.0373264654807176, 0.0373264654807176,
0.0518442650051548, 0.0471157499503146, 0.0527766243609182, 0.0615719801782924
)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))
Os dados podem ser visualizados corretamente no Excel.
Mas não consigo plotar os mesmos dados corretamente em R. Os rótulos de tempo não são apresentados adequadamente e o formato dos dados também parece errado.
Aqui estão os códigos R que eu uso:
ggplot(df2, aes(x = time, y = activity)) + geom_density_ridges2()
Você precisa usar
scale_x_datetime
, com o argumentodate_labels = "%I:%M %p"
para obter o mesmo formato de saÃda do Excel.No entanto,
geom_density_ridges
a função está errada aqui. Você está representando graficamente olevel
de cada umactivity
no Excel, não a densidade de medições no eixo x, e é por isso que as formas estão erradas.Usando uma aproximação do seu conjunto de dados, conforme mostrado na pergunta, com a mesma estrutura básica e nomes, podemos reproduzir seus gráficos do Excel em R da seguinte maneira: