Гистограмма, упорядоченная по датам - PullRequest
0 голосов
/ 29 января 2020

У меня есть набор данных с именем stepsperday.

head(stepsperday)

дает

2012-10-01 2012-10-02 2012-10-03 2012-10-04 2012-10-05 2012-10-06 
         0        126      11352      12116      13294      15420

По сути, он имеет данные за 30 дней, и я хотел бы сделать гистограмму из this.

Однако использование qplot(stepsperday, geom="histogram") дает

`stat_bin()` using `bins = 30`. Pick better value with `binwidth`

Введение bins = 30 не решает проблему, и я не уверен, что она будет работать с ggplot. Изменение даты с помощью names(stepsperday) <- c(1:30) также мало что дает.

Как сделать гистограмму там, где она упорядочена по дням.

1 Ответ

0 голосов
/ 29 января 2020

Я думаю, что вы хотите сделать столбчатую диаграмму, а не гистограмму. Гистограмма суммирует распределение одной непрерывной переменной, в то время как столбчатая диаграмма показывает взаимосвязь между непрерывной переменной и категориальной, здесь шаги и время (дни).

Из опубликованного вами вывода это выглядит так stepsperday - это объект zoo, а не столбец во фрейме данных, а ggplot2 предназначен для работы с фреймами данных (или столбцами). Если это так, то вы захотите преобразовать его во фрейм данных, а затем сгенерировать свой график. Что-то вроде:

library(tidyverse)
library(zoo)
library(lubridate)

# make example zoo object to test
set.seed(123)
stepsperday <- zoo::zoo(rpois(30, lambda = 10000),
                        order.by = seq(from = lubridate::date("2020-01-01"),
                                       to = lubridate::date("2020-01-01") + 29,
                                       by = "day"))

stepsperday %>%
  # convert zoo object to data frame with date as a column
  data.frame(date = zoo::index(.), steps = .) %>%
  ggplot(aes(x = date, y = steps)) +
    geom_col()

Вот что это производит:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...