R 在不同列中绘制具有年份的时间序列

R 在不同列中绘制具有年份的时间序列,r,ggplot2,plot,time-series,R,Ggplot2,Plot,Time Series,我有以下数据帧dthead,6: 我需要创建一个图表,其中x轴上有2015年、2016年、2017年、2018年、2019年,不同的列W15、W16、W17、W18、W19-每个列都与y轴上的一年相关。他们都应该由专栏团队分组 我尝试使用ggplot2,但没有效果。您需要将数据从宽转换为长,然后使用ggplot。看看下面 图书馆管理员 dt%>% pivot_longer.,-Team,value_to=W,name_to=Year%>% mutateYear=as.integergsubW,2

我有以下数据帧dthead,6:

我需要创建一个图表,其中x轴上有2015年、2016年、2017年、2018年、2019年,不同的列W15、W16、W17、W18、W19-每个列都与y轴上的一年相关。他们都应该由专栏团队分组


我尝试使用ggplot2,但没有效果。

您需要将数据从宽转换为长,然后使用ggplot。看看下面

图书馆管理员 dt%>% pivot_longer.,-Team,value_to=W,name_to=Year%>% mutateYear=as.integergsubW,20,Year%>% ggplot.,aesx=年份,y=W,组=团队+ geom_LineaeColor=团队 数据:

dt根据tdt[-1]和名称数字部分的时间创建zoo对象z。使用dt$TEAM作为其列名称。最后使用autoplot.zoo使用ggplot2进行绘图。如果您希望为每个系列使用单独的面板,请删除facet=NULL

library(ggplot2)
library(zoo)

z <- zoo(t(dt[-1]), as.numeric(sub("W", "", names(dt)[-1])))
names(z) <- dt$TEAM

autoplot(z, facet = NULL) + scale_x_continuous(breaks = time(z))
笔记 假设输入数据如下:

set.seed(123)
dt <- data.frame(TEAM = letters[1:5], W15 = rnorm(5), W16 = rnorm(5), W17 = rnorm(5))

欢迎来到Stackoverflow。请看这里如何制作一个伟大的R可复制的例子
set.seed(123)
dt <- data.frame(TEAM = letters[1:5], W15 = rnorm(5), W16 = rnorm(5), W17 = rnorm(5))