【Highcharts教程】R用户中的Highcharts(下)

下载Highcharts最新版本

今天,我们续讲使用折线图,柱形图和散点图可视化资产回报。该图表看起来像我们想要的,但鼠标超过一点,并注意到一些次优的美学特征。首先,工具提示未显示与x-ais上显示的日期相同的日期。第二,它将完整的y轴值显示为超过10个小数位,第三,它将两个ETF称为和,因为我们没有提供名称。让我们解决这三个问题。series 1series 2

首先,系列的名称很容易添加和。name = "SPY"name = "EFA"

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

接下来,我们通过添加到流程并使用更改x点显示的格式来修改工具提示格式。这告诉工具提示使用日期格式。

hc_tooltip(pointFormat = ){point.x:%Y-%m-%d}

然后我们改变y点显示,告诉工具提示舍入到四个小数位,然后在它后面放一个%符号。尝试将其更改为并查看结果。

{point.y:.4f}%{point.y:.8f}
highchart(type = "stock") %>% 
  hc_add_series(asset_returns_xts$SPY, type = "scatter", name = "SPY") %>% 
  hc_add_series(asset_returns_xts$EFA, type = "scatter", name = "EFA") %>% 
  hc_tooltip(pointFormat = '{point.x: %Y-%m-%d}
                            
 
                            {point.y:.4f}%')

teechart

我喜欢highcharter选择的默认颜色,但我们可以使用color参数自定义它们。

highchart(type = "stock") %>% 
  hc_add_series(asset_returns_xts$SPY, type = "scatter", name = "SPY", color = "lightblue") %>% 
  hc_add_series(asset_returns_xts$EFA, type = "scatter", name = "EFA", color = "pink") %>% 
  hc_tooltip(pointFormat = '{point.x: %Y-%m-%d}
                            
 
                            {point.y:.4f}%  ')

teechart

这就是保存数据的全部内容asset_returns_xts,让我们探讨如何从长格式化数据构建这些相同的可视化。 回想一下这个结构asset_returns_long。

teechart

如果我们希望为SPY创建返回的折线图,我们无法选择该SPY列,因为没有调用列SPY。我们需要通过调用来过滤asset列何时等于。SPYfilter(asset == "SPY")

asset_returns_long %>% 
  filter(asset == "SPY") %>% 
  head()

teechart

现在我们将数据传递给使用运算符,运算符将数据从函数传递给函数。hchart()%>%

当我们运行,我们正在筛选到的意见,然后将它们传递给带。这括号内告诉使用过滤后的数据。这可能看起来有点冗长但是通过这个流程,我们可以快速过滤不同的条件,然后将结果传递给,如果我们希望过滤类似的东西而不是(我们稍后会),这可以非常方便。asset_returns_long %>% filter(asset == "SPY")SPYhchart()hchart(.).hcharthchart()dateasset

但是,我们还没有完成,因为我们需要再次使用type =“line”来指定图表的类型,然后将我们的美学映射到。这一切都回到了数据结构。asset_returns_xts没有日期列,日期在索引中,而highcharter默认使用该索引。有一个日期列,但高图无法知道我们想要的日期列,除非我们明确告诉它。hcaes(x = date, y = returns)hcaesasset_returns_longx-axis

asset_returns_long %>% 
  filter(asset == "SPY") %>% 
  hchart(., 
         type = "line", 
         hcaes(x = date, 
               y = returns))

teechart

请注意此图表与上一个折线图之间的一些差异。首先,这里没有导航器或日期选择器。当我们带走时,我们失去了。此外,y轴默认为在左侧。我更喜欢这样 - 也许你讨厌它!可以使用hc_yAxis(相反= TRUE)将其更改回右侧。为了更好地衡量,我们也可以通过调用labels = list(format =“{value}%”)向y轴添加%标签highchart(type = "stock")

asset_returns_long %>% 
  filter(asset == "SPY") %>% 
  hchart(., 
         type = "line", 
         hcaes(x = date, 
               y = returns)) %>% 
  hc_yAxis(opposite = TRUE,
           labels = list(format = "{value}%"))

teechart

我们可以使用完全相同的代码流来创建柱形图,方法是更改为。我还希望数据的名称出现在工具提示中,可以使用。type = "column"name = "SPY"

asset_returns_long %>% 
  filter(asset == "SPY") %>% 
  hchart(., 
         type = "column", 
         hcaes(x = date, 
               y = returns),
               name = "SPY") %>% 
  hc_yAxis(opposite = TRUE,
           labels = list(format = "{value}%"))

teechart

最后,让我们从整齐,长格式的数据创建一个散点图。我们改为并再次需要指定我们的工具提示格式。type = "scatter"hc_tooltip(pointFormat = '{point.x:%Y-%m-%d}...)

asset_returns_long %>% 
  filter(asset == "SPY") %>% 
  hchart(., 
         type = "scatter", 
         hcaes(x = date, 
               y = returns),
         name = "SPY") %>%
  hc_yAxis(opposite = TRUE,
           labels = list(format = "{value}%")) %>% 
  hc_tooltip(pointFormat = '{point.x:%Y-%m-%d}
                             

                             {point.y: .4f}%')

teechart

假设我们希望将所有ETF数据分散在一个charty和颜色上。我们可以回到每个ETF的原始版本,但这会有点单调乏味。通过我们整洁的数据流,我们可以删除然后添加。根据该集团的说法,这告诉高报人员对每个ETF进行不同的着色。请注意它如何创建图例并在工具提示中包含ETF名称。flow and use hc_add_seriesfilter(asset == "SPY")hcaes(...group = asset)

asset_returns_long %>% 
  hchart(., 
         type = "scatter", 
         hcaes(x = date, 
               y = returns, 
               group = asset)) %>% 
  hc_yAxis(opposite = TRUE,
           labels = list(format = "{value}%")) %>% 
  hc_tooltip(pointFormat = '{point.x:%Y-%m-%d}
                             

                             {point.y: .4f}%')

teechart

我们可以很快看到2015年8月的最低月度回报是EEM。

创建柱形图可能会很不错,但仅适用于2017年的月度回报。以下是过滤灵活性的帮助。我们可以打电话来隔离2017年的月份,然后建立我们的柱形图。filter(date >= "2017-01-01" & date <= "2018-01-01")

asset_returns_long %>% 
filter(date >= "2017-01-01" & date < "2018-01-01") %>% 
hchart(., type = "column", 
       hcaes(x = date, 
             y = returns, 
             group = asset)) %>% 
  hc_yAxis(opposite = FALSE,
           labels = list(format = "{value}%")) %>% 
  hc_tooltip(pointFormat = '{point.x: %Y-%m-%d}
                            

                            {point.y:.4f}% ')

teechart

请注意返回按列格式按日期自然分组在一起,这有助于按月比较每个ETF。IJS看起来是2017年最不稳定的,这看起来像是Shiny应用程序的一个很好的候选者,最终用户可以选择自定义日期和一组ETF来图表。



猜你喜欢

转载自blog.51cto.com/13993266/2325717