提问人:confusedindividual 提问时间:7/12/2022 最后编辑:Philconfusedindividual 更新时间:7/12/2022 访问量:71
使用时间序列对象在基础 R 中添加 V 线以绘图
Adding v-lines to plot in base R using time series object
问:
我正在尝试将垂直线添加到我在 R 基础中制作的时间序列图中。该图内部共有 5 个图。有两个相同的 x 轴(见当前图)plot(data1,type = 'l',lwd = 1.5, family = "A", ylab ="", xlab = "", main = "")
添加 vlines 时,我得到这个结果abline(v=c(27,87, 167, 220, 280, 329), lty=2)
有没有办法让他们出现在图表上,所以它看起来像这样,但有虚线和图中的线。
或者,如果您知道在 ggplot 中绘制此内容的更好方法,那也很棒。提前非常感谢你。
答:
0赞
Adam Quek
7/12/2022
#1
这是一个使用 ggplot 放入 vlines 的玩具示例。
library(tidyverse)
iris2 <- iris %>% pivot_longer(cols=Sepal.Length:Petal.Length)
ggplot(iris2, aes(x = Petal.Width, y = value)) +
geom_line() +
facet_wrap(~name, scales="free_y", ncol=2) +
geom_vline(xintercept=c(.25, .75, 1.25, 1.75, 2.25),
linetype='dashed', col = 'blue')
0赞
jay.sf
7/12/2022
#2
plot
调用。这有一个参数,您可以在其中定义一个函数,即面板中应该发生什么。既然你想要一个和通常的,你可以很容易地做到:plot.ts
panel=
grid
lines
panel <- function(...) {grid(col=1, ny=NA, lty=1); lines(...)}
plot(z, panel=panel)
grid
通常使用 和 您可以定义单元格的数量,请参阅。axTicks
?grid
这也适用于 .abline
panel <- function(...) {abline(v=seq(1961, 1969, 2), col=1,lty=1); lines(...)}
plot(z, panel=panel)
数据:
set.seed(42)
z <- ts(matrix(rnorm(300), 100, 5), start = c(1961, 1), frequency = 12)
评论