Highstock:如何使第一列的系列名称在工具提示上动态显示,年份明智
Highstock: how to make series name of first column to be dynamic on tooltip, year wise
我必须在一个图表中显示两个条形图,其中第一个系列(条形图)是 2015 年的,第二个是 2016 年的。但是当图表包含两年的数据时。然后我应该需要工具提示 {series.name}
来选择 {point.key}
并从中提取年份让我们说,2016 年,然后在 运行 时间将 series.name 更改为 2016 年第一根柱和第二根柱到在工具提示上 {2016 - 1} = 2015
。因此,如果条的数据是 3-4 年的,为了第一个系列,现在它只需要我添加的 series.name,但是如何让它在第一个系列年明智地动态化,我们可以很容易地从 {point.key}
。我知道 highstock 不应该像那样工作,但我正在应用这种技巧来生成今年与去年酒吧的比较报告。
注意:为了在一个点上绘制图形,两个柱的时间戳将保持不变,但值将来自去年,以便能够将两个柱一起绘制。
所以我需要通过从 Week from Monday, Aug 9, 2011
的 headerText 中选择年份,动态地将工具提示上的 Previous Year
更改为 2010
并将 Current Year
更改为 2011
。
JS Fiddle: https://jsfiddle.net/sfwcqk1w/
您可以通过 tooltip.formatter 完全控制工具提示中显示的内容。您可以在那里进行自己的计算。在工具提示中,您可以访问系列中的所有点。
为启用了数据分组的点添加额外的属性将不起作用 - 在工具提示中你会得到分组的点 - 并且这些点没有额外的属性。
您的工具提示可能如下所示 - 它包含一些默认格式:
formatter: function() {
var points = this.points;
var headerFormat = '<span style="font-size: 10px">' + Highcharts.dateFormat('Week from %A, %b %e, %Y', this.x) + '</span><br/>';
var pointFormat = '',
previousYear;
points.forEach(function(point) {
var name = point.series.name,
part;
if (name === 'Previous Year') {
previousYear = part = new Date(point.x).getFullYear();
} else if (name === 'Current Year') {
part = previousYear + 1
} else {
part = name;
}
pointFormat += '<span style="color:' + point.color + '">\u25CF</span> ' + part + ': <b>' + point.y + '</b><br/>';
});
return headerFormat + pointFormat;
}
{series.name}
来选择 {point.key}
并从中提取年份让我们说,2016 年,然后在 运行 时间将 series.name 更改为 2016 年第一根柱和第二根柱到在工具提示上 {2016 - 1} = 2015
。因此,如果条的数据是 3-4 年的,为了第一个系列,现在它只需要我添加的 series.name,但是如何让它在第一个系列年明智地动态化,我们可以很容易地从 {point.key}
。我知道 highstock 不应该像那样工作,但我正在应用这种技巧来生成今年与去年酒吧的比较报告。
注意:为了在一个点上绘制图形,两个柱的时间戳将保持不变,但值将来自去年,以便能够将两个柱一起绘制。
所以我需要通过从 Week from Monday, Aug 9, 2011
的 headerText 中选择年份,动态地将工具提示上的 Previous Year
更改为 2010
并将 Current Year
更改为 2011
。
JS Fiddle: https://jsfiddle.net/sfwcqk1w/
您可以通过 tooltip.formatter 完全控制工具提示中显示的内容。您可以在那里进行自己的计算。在工具提示中,您可以访问系列中的所有点。
为启用了数据分组的点添加额外的属性将不起作用 - 在工具提示中你会得到分组的点 - 并且这些点没有额外的属性。
您的工具提示可能如下所示 - 它包含一些默认格式:
formatter: function() {
var points = this.points;
var headerFormat = '<span style="font-size: 10px">' + Highcharts.dateFormat('Week from %A, %b %e, %Y', this.x) + '</span><br/>';
var pointFormat = '',
previousYear;
points.forEach(function(point) {
var name = point.series.name,
part;
if (name === 'Previous Year') {
previousYear = part = new Date(point.x).getFullYear();
} else if (name === 'Current Year') {
part = previousYear + 1
} else {
part = name;
}
pointFormat += '<span style="color:' + point.color + '">\u25CF</span> ' + part + ': <b>' + point.y + '</b><br/>';
});
return headerFormat + pointFormat;
}