【问题标题】:Plotting Variable over Date:Time Issue in ggplot在日期上绘制变量:ggplot 中的时间问题
【发布时间】:2019-09-12 21:27:32
【问题描述】:

我正在尝试绘制特定日期随时间发生的“休息”计数。但是由于“时间”变量采用日期:时间格式并且图形无法生成,因此会出现问题。

ggplot(df, aes(y = `Breaks`, x = `Date`)) +
  geom_histogram(bins = 100, binwidth = 1, colour = "white", fill = "#1380A1") 

示例数据:

structure(list(Date = structure(c(1544107050, 1544100120, 1540557866, 
1540558168, 1544100123, 1544100135, 1545299546, 1545299518, 1545822865, 
1545822864, 1545822866, 1545822875, 1546016246, 1546016252, 1546016263
), class = c("POSIXct", "POSIXt"), tzone = "UTC"), Breaks = c(NA, 
NA, 2, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1, NA)), row.names = c(NA, 
15L), class = "data.frame")

【问题讨论】:

  • 您的数据的预期输出是什么?此外,您的代码与您的数据不匹配(变量Break 是否与变量Breaks 相同?)。此外,最后一个+之后是否缺少什么?
  • 我更正了问题中的错误。图表在 Y 轴上应该是“休息”,在 X 轴上应该是“时间”。它应该是一个折线图/直方图,显示特定日期发生了多少“休息”。
  • @divibisan 该问题将日期计算为数字。随着时间的推移,我正在添加第二个变量
  • 也许查一下直方图是什么?它与线图非常不同。它根本不需要 y 变量。它使用条形图,而不是线条。也许您想要一个条形图,每天一个条形图,条形图的高度是非缺失 Breaks 值的数量?或者,也许您希望条形的高度是非缺失 Breaks 值的 sum?还是别的什么?

标签: r ggplot2 time-series


【解决方案1】:
library(tidyverse)
df %>% 
  mutate(Date = as.Date(Date)) %>%
  count(Date, wt = Breaks) %>%
  ggplot(aes(Date, n)) +
  geom_col(colour = "white", fill = "#1380A1")

(不确定我是否理解关于“但我需要图中的缺失值本质上代表 (o)。” 零是否应该以某种方式在视觉上表示?顺便说一句,通过count(Date = ... 行的部分产生了这个-- 这就是你捕获缺失值的意思吗?)

# A tibble: 5 x 2
  Date           n
  <date>     <dbl>
1 2018-10-26     2
2 2018-12-06     0
3 2018-12-20     0
4 2018-12-26     0
5 2018-12-28     1

【讨论】:

  • 正是我需要的。谢谢
猜你喜欢
  • 2023-03-17
  • 2020-12-14
  • 1970-01-01
  • 2020-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
相关资源
最近更新 更多