【发布时间】:2022-01-05 09:46:36
【问题描述】:
我正在尝试从数据集中绘制一些线图,但在列表 var 中设置了不同的 y 轴值。出于某种原因,所有图似乎都显示一个空图,但是当我有相同的代码而没有 for 循环时,它似乎可以工作。所以我的问题是我是否可以使用 for 循环一次绘制多个图,而不是单独绘制它们。我在绘制这个时是否遗漏了什么。
var = list("CAH", 'CTLT',"CI","DVA","HSIC","HOLX","HUM","IDXX","INCY","MRK","REGN","VTRS")
for(v in var){
p<-closing_price %>%
mutate(date = as.Date(Date,"%m/%d/%y")) %>%
ggplot(aes(x = date, y = v, group=1)) +
geom_line() +
labs(x = "Date", y = "Stock Price ($)", title = glue("{v} price over time")) +
scale_x_date(date_minor_breaks = "2 day")
print(p)
}
这是我正在寻找的结果:
closing_price %>%
mutate(date = as.Date(Date,"%m/%d/%y")) %>%
select(date,CAH) %>%
ggplot(aes(x = date, y = CAH, group=1)) +
geom_line() +
labs(x = "Date", y = "Stock Price ($)", title = "CAH price over time") +
scale_x_date(date_minor_breaks = "2 day")
【问题讨论】:
-
v是一个字符。这就是为什么你会得到一条水平线。试试y = .data[[v]]。参见例如fishandwhistle.net/slides/rstudioconf2020/#7.
标签: r ggplot2 dplyr time-series