我正在尝试用我在Excel中创建的滚动条在R中创建一个循环。我正在尝试从雅虎财经收集股票数据,我的想法是R将从Excel文件中读取股票的名称,然后从雅虎财经收集它并创建一个图。
在数据框“股票”中,有10个不同的股票列在不同的列中,我想运行一个循环,这样我就可以得到10个不同的图表。这是我用来根据数据集中的第一个股票创建图形的公式。
`Stocks %>%
ggplot(aes(x=Date, y = NOVO.B.CO.Close)) +
geom_line(col = "darkgreen") +
geom_point(col = "darkgreen") +
theme_gray() +
ggtitle("Novo Nordiske B") `发布于 2020-08-25 21:44:59
将我的评论包装成一个恰当的答案。目前尚不清楚您是要将其作为单个绘图(使用facet_wrap)还是将多个绘图合并到单个窗口中。在使用ggplot2时,在long format中使用单个data.frame是有益的,因为可以让ggplot基于类似于以下示例的分组列来处理所有的着色和分组
library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(x = mpg, y = hp, col = factor(cyl))) +
geom_point() +
geom_smooth() +
labs(col = 'Nmb. Cylinder') 从这里,指南给出了每种颜色的名称,scale_*_(manual/discrete/continuous)可以用来改变特定的调色板(例如,scale_colour_discrete可以用来改变调色板的因子)。
当涉及到组合ggplot时,patchwork包提供了简单的接口。如果我们假设你分别有一个矢量tickers,titles和colors,我们可以创建一个绘图列表,并使用简单的加法(+)组合它们。
library(purrr)
plots <- vector('list', n <- length(tickers))
base <- ggplot(Stocks, aes(x = Date)) +
theme_gray()
for(i in seq_len(n)){
plots[[i]] <- base +
geom_point(aes_string(y = tickers[i]), col = colors[i])
geom_line(aes_string(y = tickers[i]), col = colors[i])
ggtitle(titles[i])
}
reduce(plots, `+`)然而,对于股票来说,第一种选择可能会给出更好的结果。
https://stackoverflow.com/questions/63578692
复制相似问题