首页 > 解决方案 > 拥塞的日期时间x轴ggplot2

问题描述

我正在处理以 5 分钟为增量覆盖大约 24 小时的数据。单击此处获取数据集 单击此处获取 dput()

显然,绘制以下结果会导致 x 轴拥挤:

 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 必须是长度 1 或 2”

我尝试通过添加解决此问题:

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

其中 y 是 pctdrops 0% - 33.333% 并以 0.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()

我仍然收到“zero_range(range) 中的错误:x 必须是长度 1 或 2”

我不确定我是否走在正确的轨道上,但无论哪种方式都需要帮助解决拥挤的 x 轴问题。

标签: rdatetimeggplot2

解决方案


推荐阅读