在amcharts堆积柱形图中, 通过默认方法,当我将鼠标悬停在列中的特定部分上时,只会看到该部分的工具提示。
如果我想在该列上的任何位置显示该列的所有值,那怎么可能? 编辑:
即在此示例中, amcharts.com/demos/100-stacked-column-chart/?theme=spiritedaway
“一”列有3个部分,当我将鼠标悬停在最上面的部分时,它会显示“系列3:33.33%”。我希望它在工具提示中一起显示“系列1:11.11%系列2:55.56%系列3:33.33%”。有可能吗?
P.S:我不是开发人员,而是UI设计师,我的团队说这是不可能的,但是通过查看代码,我觉得有可能
答案 0 :(得分:1)
如果我错了,请纠正我,但是目前,没有简单的方法可以在x轴级别的单个工具提示中显示所有系列的信息。
我尝试覆盖getTooltipText
中的xAxis
适配器,并且能够访问原始数据:
...,
xAxes: [{
type: "CategoryAxis",
adapter: {
getTooltipText: function(text, target, key) {
let dataItem = target.dataItemsByCategory.getKey(text),
data = dataItem.dataContext;
// Here you can access the raw data
// i.e., data.value1, data.value2, etc
return text;
}
}
}],
...
但是随后我不得不每次都重新计算它们的百分比,并且我无法在返回文本上放置HTML(没有getTooltipHTML适配器)。
我最终显示了系列的值以及它们的图例。并且有记录的方法可以这样做:https://www.amcharts.com/docs/v4/concepts/legend/#Interacting_with_cursor
您只需要在每个系列上定义图例设置,然后打开图例以及光标:
...,
series: [{
type: "ColumnSeries",
...,
legendSettings: {
valueText: "---%",
legendSettings: "[bold]{valueY.totalPercent.formatNumber('#.00')}%"
},
...
}],
...,
legend: {},
cursor: {
lineX: {
disabled: true
},
lineY: {
disabled: true
}
},
...