为每个旭日级别设置不同的工具提示格式化程序 - Highcharts

Set a different tooltip formatter for each sunburst levels - Highcharts

我用 highcharts 创建了旭日图。我在 python 中设置了给 Highcharts.chart('type', config)config 对象。我想为旭日图的每一层提供一个不同的工具提示。

我可以做一个大的 js 函数来搜索我的数据中的点的级别,然后将级别提供给工具提示格式化程序以显示特定数据,但我认为这不合适。

series.levels[]中是否有任何highcharts函数来获取点的等级或定义工具提示?

您可以根据切片的 level 属性 得到它。你可以这样做:

tooltip: {
    formatter: function () {
        console.log(this); // see what each slice's properties are
        if (this.point.node.level == 4) {
            return 'Population of <b>' + this.point.options.name +
                   '</b> is <b>' + this.point.options.value + '</b>';
        } else {
            return 'Level <b>' + this.point.node.level + '</b> has no tooltip';
        }
    }
}

示例jsFiddle

谢谢你的回答。其实帮助我的是console.log(this)!我不知道为什么 this 直接指向我代码中的点。而且由于我在 python 中编码,我必须将 js 函数格式化为 python 字符串,这非常困难。 所以我以这样的方式结束:

config['tooltip']['pointFormatter'] = (
      "function(){"
      "var level = this.node.level;"
      "return"
     f" {myValues}[level] + '<span style=\"text-transform: uppercase;font-weight:bold\">{myPythonVar}:</span> '"
      f"+  {myJsFormatter}.call(this) + '<br>'"
      "}"
      )

它混合了 python 和 js,很难阅读,但在我的情况下需要。