繁体   English   中英

每天在 ggplot2 中绘制多元时间序列

[英]plotting a multivariate time series daily in ggplot2

我有一个时间序列数据,其中包含以不同单位测量的多个变量。 这是每日数据。 数据如下。 (示例数据)

structure(list(date = structure(18324:18329, class = "Date"), 
 x = c(-1805605.65336663, -217934.802608961, -1032002.23625031, 234816.624919304, 1321982.20108174, 104251.623282941), y = c(0.633729348424822, 0.244916933588684, 0.873351667076349, 0.552934182109311, 0.348864572821185, 0.197756679030135), z = c(3L, 5L, 5L, 6L, 5L, 6L)), class = "data.frame", row.names = c(NA, -6L
))

假设 X 以十亿卢比为单位,Y 是 0 和 1 之间的比率,Z 是计数变量。 我想 plot 在多个图中的时间段内的所有这些变量(最好使用 facet_wrap)

您可以使用以下代码

library(tidyverse)
library(lubridate)
df %>% 
  dplyr::mutate(date = ymd(date)) %>% 
  gather(key = "key", value = "value",-date) %>% 
  ggplot(aes(x=date, y=value)) + geom_line() + facet_wrap("key", scales = "free")

在此处输入图像描述

更新

df %>% 
  dplyr::mutate(date = ymd(date)) %>% 
  gather(key = "key", value = "value",-date) %>% 
  ggplot(aes(x=date, y=value)) + geom_line() + theme_bw() + 
  facet_wrap(~key, scales = "free_y", ncol = 1, 
             strip.position = "left", 
             labeller=as_labeller(c(x = "Rs Billion", y = "Ratio", z = "Count variable (n)")))  +
  ylab(NULL) +xlab("Date")+
  theme(strip.background = element_blank(),
        strip.placement = "outside")

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM