在R中创建多个折线图

mo_*_*aat 3 plot r ggplot2

我有以下虚拟数据.

set.seed(45)
df <- data.frame(x=rep(1:5, 9), val1=sample(1:100,45),
val2=sample(1:100,45),variable=rep(paste0("category",1:9),each=5))
Run Code Online (Sandbox Code Playgroud)

我想基于x绘制val1和val2(在我的实际数据中是一个日期值序列).我怎样才能做到这一点.我试过ggplot2,mplot,并且一切都没有成功.我也查看了其他类似的帖子,但它们不起作用或满足我的需求.

谢谢.

pic*_*ick 5

更多ggplot2选项,无需重塑数据

## All on one
ggplot(df, aes(x, val1, color=variable, linetype="a")) +
  geom_line() +
  geom_line(aes(x, val2, color=variable, linetype="b")) +
  theme_bw() + ylab("val") +
  scale_linetype_manual(name="val", labels=c("val1", "val2"), values=1:2)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

## Faceted
ggplot(df, aes(x, val1, color=variable, linetype="a")) +
  geom_line() +
  geom_line(aes(x, val2, color=variable, linetype="b")) +
  theme_bw() + ylab("val") +
  guides(color=FALSE) +
  scale_linetype_manual(name="val", labels=c("val1", "val2"), values=1:2) +
  facet_wrap(~variable)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述