如何使用 R 中的 Plot 绘制多个时间序列(常见 x-axis 与垂直面)?
How to plot multiple time series (common x-axis with vertical facet) using Plot in R?
我正在尝试在 R 中绘制 4 个时间序列的垂直堆栈图。以下代码可以显示该图,但 'lty' 和 'col' 参数无法正常工作。同时,虽然使用了“main=NULL”,但标题仍然显示。有什么办法可以解决这个问题吗?
另外,请问有什么方法可以设置每个小地块的“xlim”吗?谢谢。
data(UKgas)
ts1 = UKgas
ts2 = UKgas+100
ts3 = UKgas+500
ts4 = UKgas+1000
plot(ts.union(TS1 = ts1, TS2 = ts2,TS3 = ts3, TS4 = ts4), lty = 1:4, col = 1:4, main = NULL)
绘制一个ts.union
对象调用方法stats:::plot.ts
,从源代码来看,这恐怕只会采用一种颜色。您可以使用一些数据整理和 ggplot2
获得您想要的结果,另外一个好处是该图是完全可定制的。
library(ggplot2)
library(tidyr)
ts_s <- ts.union(TS1 = ts1, TS2 = ts2,TS3 = ts3, TS4 = ts4)
times <- attr(ts_s, "tsp")
df <- cbind(as.data.frame(ts_s), year = seq(times[1], times[2], 1/times[3]))
ggplot(pivot_longer(df, 1:4), aes(year, value, colour = name)) +
geom_line(aes(linetype = name)) +
scale_x_continuous(breaks = seq(1960, 1985, 5)) +
facet_grid(name~., switch = "y", scales = "free_y") +
labs(title = NULL) +
theme_classic() +
theme(panel.background = element_rect(color = "black"),
strip.placement = "outside",
strip.background = element_blank(),
panel.spacing.y = unit(0, "npc"),
strip.text = element_text(size = 16, face = 2),
legend.position = "none")
由 reprex package (v2.0.1)
创建于 2022-03-13
我正在尝试在 R 中绘制 4 个时间序列的垂直堆栈图。以下代码可以显示该图,但 'lty' 和 'col' 参数无法正常工作。同时,虽然使用了“main=NULL”,但标题仍然显示。有什么办法可以解决这个问题吗?
另外,请问有什么方法可以设置每个小地块的“xlim”吗?谢谢。
data(UKgas)
ts1 = UKgas
ts2 = UKgas+100
ts3 = UKgas+500
ts4 = UKgas+1000
plot(ts.union(TS1 = ts1, TS2 = ts2,TS3 = ts3, TS4 = ts4), lty = 1:4, col = 1:4, main = NULL)
绘制一个ts.union
对象调用方法stats:::plot.ts
,从源代码来看,这恐怕只会采用一种颜色。您可以使用一些数据整理和 ggplot2
获得您想要的结果,另外一个好处是该图是完全可定制的。
library(ggplot2)
library(tidyr)
ts_s <- ts.union(TS1 = ts1, TS2 = ts2,TS3 = ts3, TS4 = ts4)
times <- attr(ts_s, "tsp")
df <- cbind(as.data.frame(ts_s), year = seq(times[1], times[2], 1/times[3]))
ggplot(pivot_longer(df, 1:4), aes(year, value, colour = name)) +
geom_line(aes(linetype = name)) +
scale_x_continuous(breaks = seq(1960, 1985, 5)) +
facet_grid(name~., switch = "y", scales = "free_y") +
labs(title = NULL) +
theme_classic() +
theme(panel.background = element_rect(color = "black"),
strip.placement = "outside",
strip.background = element_blank(),
panel.spacing.y = unit(0, "npc"),
strip.text = element_text(size = 16, face = 2),
legend.position = "none")
由 reprex package (v2.0.1)
创建于 2022-03-13