Перегруженная дата и время по оси х ggplot2 - PullRequest
0 голосов
/ 22 мая 2018

Я работаю с данными, охватывающими приблизительно 24 часа с шагом 5 минут. Нажмите здесь для набора данных Нажмите здесь для dput ()

Очевидно, что график следующийприводит к перегруженной оси абсцисс:

 ggplot(df, aes(fill=cos,y=pctdrops, x=date))+
  geom_bar(position="dodge",stat="identity")+
  scale_x_datetime(date_breaks = "5 min",date_labels="%M")

ggplot(df, aes(fill=cos,y=pctdrops, x=date))+
  geom_bar(stat="identity")

Чтобы попытаться решить проблему, я попробовал следующее:

lims <- as.POSIXct(strptime(df$date,format = "%Y-%m-%d %H:%M"))

ggplot(data = df, 
       aes(x = date, y = pctdrops)) + 
  geom_line(size = 1.25) + 
  scale_x_datetime(labels = date_format("%H:%m"), 
                   breaks = date_breaks("5 min"), 
                   limits = lims,
                   expand = c(0, 0)) +
  theme_linedraw()

и получаю «Ошибка в zero_range (range): x mustбыть длиной 1 или 2 "

Я попытался решить эту проблему, добавив:

scale_y_continuous(limits=c(0, 33.333), breaks=seq(0, 33.333, .556))

, где y - это pctdrops 0% - 33,333% и увеличение на .556%

Код:

ggplot(data = df, 
       aes(x = date, y = pctdrops)) + 
  geom_line(size = 1.25) + 
  scale_x_datetime(labels = date_format("%H:%m"), 
                   breaks = date_breaks("5 min"), 
                   limits = lims,
                   expand = c(0, 0)) +
  scale_y_continuous(limits=c(0, 33.333), breaks=seq(0, 33.333, .556))
  theme_linedraw()

Я все еще получаю «Ошибка в нулевом диапазоне (диапазон): x должен быть длиной 1 или 2»

Я не уверен, что я на правильном пути, но либоКстати нужна помощь в решении проблемы с перегруженной осью X.

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