R语言 如何使用dygraphs的交互式时间序列图
dygraphs指的是动态图形,它导致了一种在用户和图形之间建立互动的简单方法。dygraphs主要用于时间序列分析。dygraphs包是R编程语言中dygraphs JavaScript图表库的一个R接口。
创建简单的dygraphs
让我们拿股票数据来更好地理解时间序列。
通过使用getSymbols()从quantmod库中下载(Tesla)股票数据。我们将绘制5个不同的动态图。
- 系列颜色
- 垂直和水平阴影
- 烛台
- 上/下栏
- 范围选择器
首先,在rstudio中安装dygraphs和quantmod包。
install.packages(“dygraphs”)
install.pack ages(“quantmod”)
你可以直接从这个链接下载数据。TSLA股票数据
这里,OHLC代表股票数据中每期的开盘价、最高价、最低价和收盘价。因此,我们正在获取这个参数并将其存储在价格变量中。
# import library
library(dygraphs)
library(quantmod)
# download data
getSymbols("TSLA")
# view top 5 row data
head(TSLA,n=5)
# Get OHLC data
price<-OHLC(TSLA)
head(price, n=5)
输出
颜色
系列颜色图
Dygraph可以为每条可视化线分配不同的颜色调色板。例如,我们在TSLA数据中的四个参数(开盘价、最高价、最低价、收盘价)可以用不同的颜色表示。Dygraph提供了dyOptions(),其中的颜色参数可以很好地识别每条股票线。
# RColorBrewer used to create nice color palettes
# display.brewer.pal(n, name)
dygraph(price, main = "TSLA Stock price analysis") %>%
dyOptions(colors = RColorBrewer::brewer.pal(4, "Dark2"))
输出
可视化股票价格的4个参数
垂直和水平阴影
垂直阴影
Dygraph可以在时间线部分分配阴影特征,以分析不同的时间间隔。通过使用dyshading,我们可以将时间间隔分配给颜色,以便更好地分析股票部分。
dygraph(price, main = "TSLA Stock price analysis") %>%
dySeries(label = "Temp (F)",
color = "black") %>%
dyShading(from = "2018-1-1",
to = "2019-12-1",
color = "#FFE6E6") %>%
dyShading(from = "2020-1-1",
to = "2021-1-1",
color = "#CCEBD6")
输出
水平遮光
Dygraphs通过使用平均值和标准偏差提供水平阴影。我们可以在阴影中指定区间,并将轴参数分配给y。
ret = ROC(TSLA[, 4])
mn = mean(ret, na.rm = TRUE) #mean
std = sd(ret, na.rm = TRUE) #standard deviation
dygraph(ret, main = "TSLA Share Price") %>%
dySeries("TSLA.Close", label = "TSLA") %>%
dyShading(from = mn - std, to = mn + std, axis = "y")
输出
灰色的水平阴影
烛台图
烛台图是股票市场上专业交易员最常用的,用于根据过去的数据预测价格走势。 dygraph只需一行命令就能轻松绘制此图。在这里,我们存储了过去30天的股票数据来创建一个蜡烛图。红柱显示股票下跌,绿柱显示股票上涨。
TSLA <- tail(TSLA, n=30)
graph <- dygraph(OHLC(TSLA))
dyCandlestick(graph)
输出
蜡烛图
上/下栏
我们可以创建多个系列,其中每个系列在阴影方面都有一个上/下条,就像误差条一样。在下面的图表中,显示了亚马逊和特斯拉系列的例子。
# import tesla and amazon stock price
getSymbols("AMZN")
stocks <- cbind(AMZN[,2:4], TSLA[,2:4])
# plot graph
dygraph(stocks, main = "Amazon and Tesla Share Prices") %>%
dySeries(c("AMZN.Low", "AMZN.Close",
"AMZN.High"), label = "AMZN") %>%
dySeries(c("TSLA.Low", "TSLA.Close",
"TSLA.High"), label = "TSLA")
输出
上/下条形图
范围选择器
我们可以通过dyRangeSelector()函数在dygraph图表的底部添加一个范围选择器,以方便平移和缩放的界面。
dygraph(TSLA,
main = "Tesla Stock Price Analysis")
%>% dyRangeSelector()
输出
从下面选择范围