[编辑]我在写这个问题时最终解决了这个问题,因此请参阅下面的答案。
我有一个图表,在x轴上有时间段,在y轴上有得分,并且在每个点上,我都希望工具提示给出当前点和上一个点之间的y值差(在同一系列)。
可重现的示例:
library(highcharter)
hchart(df,
type="line",
hcaes(x = period, y = value, group = group)
) %>%
hc_tooltip(pointFormat = "Score: {point.y} ({previous.point.y})")
理想情况下,例如,将鼠标悬停在系列B的第二点上时,我想说
Score: 5 (+1)
。这可能需要一些formatter=JS()
JavaScript而不只是pointFormat
,但不确定如何做到这一点。 最佳答案
感谢this related answer,我设法访问了所有y值,然后我发现使用this.point.x
允许我们磨练特定的y值。这是JS:
function () {
if (this.point.x == 0) { // there's no previous point, so set to '0'
var thisDiff = 0;
} else { // use 'this.point.x' to get current position, and do '-1' to get previous position
var thisDiff = ( this.series.points[this.point.x].y - this.series.points[this.point.x - 1].y );
if (thisDiff > 0) {
thisDiff = '+' + thisDiff; // pretty print a '+' sign if difference is positive
}
}
var s = '<b>Series ' + this.series.name + ', period ' + this.point.name + ': </b>';
s += 'mean score ' + this.point.y + ' (' + thisDiff + ')';
return(s);
}
要使其在
highcharteR
中工作,我们只需要将其用引号引起来并传递给hc_tooltip(formatter = JS()
关于javascript - Highcharts/HighcharteR工具提示:访问序列中的所有y值,打印差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61141757/