【发布时间】:2018-08-06 04:43:51
【问题描述】:
我正在使用 Highchart 绘制一些时间序列,并想在图中添加一些注释以突出显示一些关键点。我知道将光标放在图形上可以弹出上下文,但是,需要一些自动图形生成,因此注释是最好的方法。
我做到了,下面代码的最后一行。然而,效果并不是我所期望的。文本位于左下角,不在右侧水平位置但垂直位置在右侧。时间序列是使用 xts 库创建的,这意味着横轴只是 date 数据结构,没什么花哨的。 xValue 指定为总长度为 1018 的所有时间点的第 900 个元素,因此第 900 个时间点必须在图形的后半部分。
任何人都知道如何将注释放在正确的位置?非常感谢。
hc <- highchart(type = "stock") %>%
hc_title(text = "Some time series") %>%
hc_add_series(x, color='green', name="x", showInLegend = TRUE) %>%
hc_add_series(y, color='red', name="y", showInLegend = TRUE) %>%
hc_add_series(z, color='blue', name="z", showInLegend = TRUE) %>%
hc_navigator(enabled=FALSE) %>%
hc_scrollbar(enabled=FALSE) %>%
hc_legend(enabled=TRUE, layout="horizontal") %>%
hc_annotations(list(enabledButtons=FALSE, xValue = index(x)[900], yValue = -5, title =list(text = "Hello world! How can I make this work!")))
hc
数据可以大致使用如下脚本生成:
dt <- seq(as.Date("2014/1/30"), as.Date("2018/2/6"), "days")
dt <- dt[!weekdays(dt) %in% c("Saturday", "Sunday")]
n <- length(dt)
x <- xts(rnorm(n), order.by=dt)
y <- xts(rnorm(n), order.by=dt)
z <- xts(rnorm(n), order.by=dt)
【问题讨论】:
-
请提供一个可重现的最小示例,以帮助其他人帮助您
-
@jbkunst 谢谢,添加了一段代码来生成数据。
-
我在 Highstock(纯 JS)中准备了一个最小的注释示例,一切似乎都运行良好:jsfiddle.net/BlackLabel/xr50ftw1
index(x)[900]在您的代码中的值是什么? -
@KamilKulig 我确信 Highchart 库在 JS 中比在 R 中运行得更好。任何线索为什么它在 R 中不起作用?
-
不幸的是,我对 R 了解不多。Highcharter 不是官方包装器 - 一些在 Highcharts 中不会出现的问题可能会出现在其中。也许包装器的创建者会有所帮助。 @jbkunst?
标签: r date highcharts xts