向 kendo 堆叠条形图中的每个图块添加工具提示

Adding tooltip to each tile in a kendo stacked bar chart

我使用 Kendo UI 创建了堆积条形图。我想为堆叠条形图中的每个图块显示工具提示,并为此使用另一个数组,其中包含要显示为工具提示的值。

例如: 当我将鼠标悬停在 2000 年的美国时,工具提示应显示 NYC:60% 和 SFO:40%(如图所示)。

这里是fiddle

这就是我要实现的目标(在本例中显示的是美国 2000 年的工具提示):

问题是当我使用 series clickseries hover events 时,我无法识别图块(在堆叠条形图中),这使得显示工具提示变得更加困难。

这是代码:

您需要设置 tooltip: { shared: true } 它会起作用,我还在下面包含了 tooltip 的其他可自定义属性。

工作演示:https://dojo.telerik.com/OfeMiHUb/4

片段:

 tooltip: {
             shared: true,
             visible: true,
             background: "#000",
             template: "#= series.stack.group #, city #= series.name #"
          }

或者如果你想要工具提示的另一个模板,你可以试试这个:https://dojo.telerik.com/OfeMiHUb/3

更新:

发生了什么变化?:

tooltip: { 
     template: `USA- #= cityData[0]
                            .children
                                 .map(itm => Object.keys(itm)[0]) #`
    }

OP 进一步阐明了他想要什么,作为 per 新信息,请参阅新的工作示例:https://dojo.telerik.com/OfeMiHUb/9

您可以像这样通过索引子对象的键来检索您的城市数据:cityData[0].children.map(itm => Object.keys(itm)[0])

可能的补充:

  • 如果您希望将 series.name 动态添加到工具提示中,而不是显式键入它。您可以使用:series.name

像这样:

tooltip: { 
   template: `#= series.name # - #=
   cityData[0]
       .children
           .map(itm => Object.keys(itm)[0]) #`}

cityData[index] 的 ArrayIndex 更改为 select 个国家城市。

0: USA
1: Canada 
2: Mexico

更新 2:

看完你写的内容 (3000x) + 查看图片后,我的解释是你也想要百分比显示(即使在下面的澄清评论中你不想要?)。 总之:

        series: [{
            name: "USA",
            stack: {
                group: "Country"
            },
            tooltip: {template: `#= series.name # - #=
            cityData[0]
                .children
                    .map(itm => '[' + Object.keys(itm)[0] + ']' + ' : ' + Object.values(itm)[0][0]) #`},
            data: [854622, 925844, 984930]
        }, {
            name: "Canada",
            stack: {
                group: "Country"
            },
            tooltip: {template: `#= series.name # - #=
            cityData[1]
                .children
                    .map(itm => '[' + Object.keys(itm)[0] + ']' + ' : ' + Object.values(itm)[0][0]) #`},
            data: [490550, 555695, 627763]
        }, {
            name: "Mexico",
            stack: {
                group: "Country"
            },
                            tooltip: {template: `#= series.name # - #=
            cityData[2]
                .children
                    .map(itm => '[' + Object.keys(itm)[0] + ']' + ' : ' + Object.values(itm)[0][0]) #`},
            data:[379788, 411217, 447201]
        }

         ],

几乎得到百分比/系列工作。

现在我正在努力提取这个 select 中的系列索引或:Object.values(itm)[0][SERIES_INDEX_SHOULD_BE_HERE]

待续...