首页 > 解决方案 > 如何使用 GGPLOT 自动调整时间刻度(x 轴)限制?

问题描述

我有以下数据集:

head(data, 10)

     date      time            datetime varX varY
1  2020-06-24        0S 2020-06-24 00:00:00     0  0
2  2020-06-24    15M 0S 2020-06-24 00:15:00     3 27
3  2020-06-24    30M 0S 2020-06-24 00:30:00     8 12
4  2020-06-24    45M 0S 2020-06-24 00:45:00    29 76
5  2020-06-24  1H 0M 0S 2020-06-24 01:00:00    10 22
6  2020-06-24 1H 15M 0S 2020-06-24 01:15:00     0  0
7  2020-06-24 1H 30M 0S 2020-06-24 01:30:00     0  0
8  2020-06-24 1H 45M 0S 2020-06-24 01:45:00     0  0
9  2020-06-24  2H 0M 0S 2020-06-24 02:00:00     0  1
10 2020-06-24 2H 15M 0S 2020-06-24 02:15:00    14 39`

tail(data, 10)

          date       time            datetime varX varY
471 2020-06-28 21H 30M 0S 2020-06-28 21:30:00     0  0
472 2020-06-28 21H 45M 0S 2020-06-28 21:45:00     0  0
473 2020-06-28  22H 0M 0S 2020-06-28 22:00:00     0  0
474 2020-06-28 22H 15M 0S 2020-06-28 22:15:00     0  1
475 2020-06-28 22H 30M 0S 2020-06-28 22:30:00     0  0
476 2020-06-28 22H 45M 0S 2020-06-28 22:45:00     0  0
477 2020-06-28  23H 0M 0S 2020-06-28 23:00:00     0  0
478 2020-06-28 23H 15M 0S 2020-06-28 23:15:00     0  0
479 2020-06-28 23H 30M 0S 2020-06-28 23:30:00    37 86
480 2020-06-28 23H 45M 0S 2020-06-28 23:45:00    24 72

我想在同一个图中一起绘制几天的每日 varX。

我正在使用以下代码:

    p <- ggplot(data, aes(x = datetime, y = varX)) + 
      geom_area() + facet_grid(vars(date))
    p

问题: 每日地块没有寻求的xlimit。[Varx 超过 3 天,但所有天的 xlim 都相同][1]

我希望有类似上面的照片,但 xlim 限制了每日 varX。

有帮助吗??谢谢 [1]:https ://i.stack.imgur.com/unEKb.png

标签: rggplot2time-series

解决方案


这可以工作:

#Code
p <- ggplot(data, aes(x = datetime, y = varX)) + 
      geom_area() + facet_grid(vars(date),scales='free_x')

或者:

#Code2
ggplot(data, aes(x = datetime, y = varX)) + 
  geom_area() + facet_wrap(vars(date),scales = 'free_x')

推荐阅读