使用折线图,柱形图和散点图可视化资产回 的下部分
下载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}%')

我喜欢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}% ')

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

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

现在我们将数据传递给使用运算符,运算符将数据从函数传递给函数。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))

请注意此图表与上一个折线图之间的一些差异。首先,这里没有导航器或日期选择器。当我们带走时,我们失去了。此外,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}%"))

我们可以使用完全相同的代码流来创建柱形图,方法是更改为。我还希望数据的名称出现在工具提示中,可以使用。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}%"))

最后,让我们从整齐,长格式的数据创建一个散点图。我们改为并再次需要指定我们的工具提示格式。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}%')

假设我们希望将所有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}%')

我们可以很快看到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}% ')

请注意返回按列格式按日期自然分组在一起,这有助于按月比较每个ETF。IJS看起来是2017年最不稳定的,这看起来像是Shiny应用程序的一个很好的候选者,最终用户可以选择自定义日期和一组ETF来图表。
购买Highcharts正版授权,请点击“咨询在线客服”哟!
标签:图表图表控件highcharts
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!