如何在时间序列数据上使用ggfortify库实现刻面网格功能?

如何在时间序列数据上使用ggfortify库实现刻面网格功能?,r,ggplot2,time-series,facet-grid,ggfortify,R,Ggplot2,Time Series,Facet Grid,Ggfortify,我使用的是RStudio,我有一个时间序列数据(ts对象),名为data1 以下是data1的外观: Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2014 135 172 179 189 212 47 301 183 247 292 280 325 2015 471 243 386 235 388 257 344 526 363 261 189 173 2016 272 267 197 217 393 299 343 341 315

我使用的是
RStudio
,我有一个
时间序列
数据(
ts
对象),名为
data1

以下是
data1
的外观:

     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2014 135 172 179 189 212  47 301 183 247 292 280 325
2015 471 243 386 235 388 257 344 526 363 261 189 173
2016 272 267 197 217 393 299 343 341 315 305 384 497
为了绘制上述内容,我运行了以下代码:

plot (data1)
我得到了下面的图:

我希望有一个按年份划分的绘图,我正在考虑实现
ggplot2
中的
facet\u grid
功能,但由于我的数据是
ts
对象,因此我不能直接在其上使用
ggplot2

经过一些研究,我发现
ggfortify
库可以处理
ts
对象。但是,我很难想出如何使用
facet\u grid
功能

我的目标是根据我的
ts
数据绘制如下内容:

“女性”和“男性”将由2014年、2015年和2016年取代。X轴是月份(一月、二月、三月等),y轴是
ts
文件中的值。我更喜欢线图而不是点图


我在这方面做得对吗?还是有其他方法解决这个问题?

我们可以使用
ggplot2::autoplot
。我将以
AirPassengers
数据为例

library(ggplot2)
library(lubridate)
autoplot(AirPassengers) + 
 facet_grid(. ~ year(Index), scales = "free_x") + 
 scale_x_date(date_labels = "%b")

我们可以使用
ggplot2::autoplot
。我将以
AirPassengers
数据为例

library(ggplot2)
library(lubridate)
autoplot(AirPassengers) + 
 facet_grid(. ~ year(Index), scales = "free_x") + 
 scale_x_date(date_labels = "%b")

关于如何使用
ggplot2
重塑数据和打印面,有许多示例。PS:在你的情况下,我会使用
geom_线(aes(颜色=因子(年))
而不是面。我知道我可以重塑我的数据并使用ggplot2。我想说的是,我是否可以在不改变数据形状的情况下使用ggfortify来做这件事。任何给减分的人都不理解我问题的目的。我想在问题的标题中可以清楚地看到,我正在寻找一个解决方案,来解决如何在ts文件上实现这一点。这与重塑数据无关。请看一下
?ggplot2::autoplot
。您可以尝试
库(lubridate);自动绘图(数据1)+平面网格(.~year(Index),scales=“free\u x”)
@markus谢谢。正是我要找的!请作为答案发布,我将投票。关于如何
重塑数据和使用
ggplot2
绘制面,有很多例子。PS:在你的情况下,我会使用
geom_线(aes(颜色=因子(年))
而不是面。我知道我可以重塑我的数据并使用ggplot2。我想说的是,我是否可以在不改变数据形状的情况下使用ggfortify来做这件事。任何给减分的人都不理解我问题的目的。我想在问题的标题中可以清楚地看到,我正在寻找一个解决方案,来解决如何在ts文件上实现这一点。这与重塑数据无关。请看一下
?ggplot2::autoplot
。您可以尝试
库(lubridate);自动绘图(数据1)+平面网格(.~year(Index),scales=“free\u x”)
@markus谢谢。正是我要找的!请贴出答案,我会投票的。