【Highcharts教程】R用戶中的Highcharts(上)

下載Highcharts最新版本

今天,我們將使用折線圖,柱形圖和散點圖可視化資產回報。下次我們將通過添加迴歸線和模擬結果來進行更復雜的工作。將可視化宏觀經濟數據,如BLS就業報表和GDP數據。 對於我們的數據,我們將使用以下5個ETF的5年月度回報。

+ SPY (S&P500 fund)
+ EFA (a non-US equities fund)
+ IJS (a small-cap value fund)
+ EEM (an emerging-mkts fund)
+ AGG (a bond fund)

需要以下包

library(tidyverse)
library(timetk)
library(kableExtra)
library(highcharter)

完整的代碼在這裏:

symbols <- 
  c("SPY","EFA", "IJS", "EEM","AGG")

prices <- 
  getSymbols(symbols, 
             src = 'yahoo', 
             from = "2013-01-01",
             to = "2017-12-31",
             auto.assign = TRUE, 
             warnings = FALSE) %>% 
  map(~Ad(get(.))) %>%
  reduce(merge) %>% 
  `colnames<-`(symbols)

prices_monthly <- 
  to.monthly(prices, 
             indexAt = "last", 
             OHLC = FALSE)

asset_returns_xts <- 
  na.omit(Return.calculate(prices_monthly, 
                           method = "log"))

asset_returns_xts <- asset_returns_xts * 100
  

asset_returns_long <-  
  prices %>% 
  to.monthly(indexAt = "last", 
             OHLC = FALSE) %>% 
  tk_tbl(preserve_index = TRUE, 
         rename_index = "date") %>%
  gather(asset, returns, -date) %>% 
  group_by(asset) %>%  
  mutate(returns = 
           (log(returns) - log(lag(returns))) *100
         ) %>% 
  na.omit()

我們將使用保存每月資產回報的兩個數據對象。第一個被稱爲asset_returns_xts。看看前幾行。

teechart

每個ETF月度回報都有一列,但請注意日期在無名欄中。實際上,日期根本不在列中,它被認爲是該矩陣的基於時間的索引。 比較一下asset_returns_long。

teechart

該對象有一個名爲的列date,一個名爲asset的列和一個名爲的列returns。它被認爲是一個長數據對象,因爲ETF是按行堆疊的,而asset_returns_xts被認爲是一個寬數據對象,因爲每個ETF都有自己的列並使對象更寬。asset_returns_long並asset_returns_xts保持完全相同的信息,但格式不同。我們將研究如何使用highcharter對兩者進行可視化,因爲它們都是金融界的流行數據格式。

讓我們從asset_returns_xtsHighcharts工具鏈的Highstock部分開始並使用它。要從R調用此功能,我們首先提供,然後提供要繪製的數據。請注意,我們指定type =“line”,但這不是必需的,因爲默認值是折線圖。 highchart(type = "stock")

highchart(type = "stock") %>% 
  hc_add_series(asset_returns_xts$SPY, type = "line")

看一下圖表,注意它底部有一個導航器,右上角有一個日期範圍選擇器。我們沒有必要對它們進行編碼,默認情況下創建它們是我們最終用戶的一個非常好的功能。highchart(type = "stock") 如果我們喜歡不同的顏色,我們可以改變它。color = "green"

highchart(type = "stock") %>% 
  hc_add_series(asset_returns_xts$SPY, 
                type = "line",
                color = "green")

如果我們想要柱形圖而不是折線圖怎麼辦?除了我們指定之外,它是相同的代碼流。type = "column"

highchart(type = "stock") %>% 
  hc_add_series(asset_returns_xts$SPY, type = "column")

將鼠標懸停在這兩個圖表上並注意工具提示如何自動從x軸拉出日期。 對於散點圖,我們使用相同的代碼流,更改爲,但我們也可以通過追加來添加EFA ETF的回報。我們可以爲所有5個ETF做這個,逐行添加它們,將所有5個放在同一個散點圖上。type = "scatter"hc_add_series(asset_returns_xts$EFA)

highchart(type = "stock") %>% 
  hc_add_series(asset_returns_xts$SPY, type = "scatter") %>% 
  hc_add_series(asset_returns_xts$EFA, type = "scatter")


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章