例如,我有一个不同的时间序列4。在这种情况下,我模拟了4个白噪声时间序列。
timeSeries <- matrix(nrow=500,ncol=4)
for(i in 1:4){
timeSeries[,i] <- rnorm(n = 500,mean = 0,sd = i)
}
timeSeries <- as.data.frame(timeSeries)
timeSeries <- cbind(timeSeries,time = 1:500)
每个时间序列都有不同的标准差。我想使用线图可视化所有时间序列。
plot1 <- ggplot(timeSeries,aes(x = time,y= V1)) + geom_line()
plot2 <- ggplot(timeSeries,aes(x = time,y= V2)) + geom_line()
plot3 <- ggplot(timeSeries,aes(x = time,y= V3)) + geom_line()
plot4 <- ggplot(timeSeries,aes(x = time,y= V4)) + geom_line()
library(gridExtra)
grid.arrange(plot1, plot2,
plot3,plot4,
nrow = 2, ncol=2)
如果按照现在的方式进行操作,则各图之间的范围会有所不同。我可以使用诸如facet_wrap之类的图形进行绘制,并且在图形之间具有相同的取值范围吗?
答案 0 :(得分:2)
这种方法呢?
ggplot(timeSeries %>% gather(key,value,-time)) +
geom_line(aes(x=time,y=value))+
facet_wrap(~key)
答案 1 :(得分:2)
自从您提到facet_wrap
以来,也许是这样的事情?
library(tidyverse)
timeSeries %>%
gather(key, val, -time) %>%
ggplot(aes(time, val)) +
geom_line() +
facet_wrap(~ key)
您可以通过scales
中的facet_wrap
参数指定缩放行为。对于所有方面,两个轴的默认比例都是固定的(即相同)。
答案 2 :(得分:0)
据我所知,您希望y轴在四个图中具有相同的范围。最简单但不是最有效的方法是添加:
ylim(10,-10) #Add this to each plot like following example:
plot1 <- ggplot(timeSeries,aes(x = time,y= V1)) + geom_line() + ylim(10, -10)