首页 > 解决方案 > R中一张图中的多个时间序列图

问题描述

我有这样的数据

  var1<- rnorm(100, 5, 10)
  var2<- rnorm(100, 300, 45)
  country <- rep(c("a","b","c","d","e","f","g","h","k","l"),each=10)
  year <- rep(2000:2009,length.out=10)
  data1 <-data.frame(country,year,var1,var2)

我想用许多小图制作一个大图,在每个图中查看 var1 和 var2 随时间变化的线,其中每个小图对应一个国家/地区。理想情况下,设置列数是可选的,比如说 4 个 grpah 的列和大的大小/形状,因为我的国家比这里多得多,我将不得不为此进行调整..

非常感谢

标签: rggplot2graph

解决方案


通常的方法是将数据以长格式引入并使用facet_wrap/facet_grid创建多个小图。您可以使用ncolnrow指定如何格式化绘图。

library(tidyverse)

data1 %>%
  pivot_longer(cols = var1:var2) %>%
  mutate(year = factor(year)) %>%
  ggplot() + aes(year, value, color = name, group = name) + 
  geom_line() + facet_wrap(~country, ncol = 2)

在此处输入图像描述


推荐阅读