Amcharts 4图片悬停时如何显示自身Tooltip而非折线Tooltip
AmCharts 4折线图:子弹点图片悬停Tooltip优先级问题
背景与需求
- 使用AmCharts 4绘制折线图,包含近30年日度数据(5000万+数据点)
- 部分数据点附带描述信息与图片链接,需在对应日期显示旗帜图片,悬停图片时展示专属描述,而非折线默认Tooltip
数据集示例
[ {value:9,date:2020-09-09}, {value:100,date:2020-09-10 , value_Note:"company gains lots of profit" , value_Image : "https://flagicons.lipis.dev/flags/4x3/bb.svg"} // ...更多数据 ]
当前实现代码
折线系列Tooltip配置
lineSeries.tooltipHTML = `<div style="">{dateX.formatDate('dd MMM, yyyy')}: {valueY.formatNumber('#,###.##')}</div>`;
图片Bullet配置
var bullet = lineSeries.bullets.push(new am4charts.Bullet()); bullet.adapter.add("rotation", function (rotation, target) { if (target.dataItem && target.dataItem.valueY < 0) { return 180; } return rotation; }); bullet.disabled = true; bullet.propertyFields.disabled = EnableBullet; var image = bullet.createChild(am4core.Image); image.horizontalCenter = "middle"; image.verticalCenter = "bottom"; image.width = 30; image.height = 30; image.dy = 1; image.dx = 1; image.cloneTooltip = image.tooltipHTML = `<div class="ChartToolTip">${tooltipdata}</div>`; image.showTooltipOn = "hover"; image.propertyFields.href = "" + BulletField + ""; image.filters.push(new am4core.DropShadowFilter());
问题现状
- 悬停图片时,始终显示折线自身的Tooltip,仅移除折线Tooltip代码后,才会显示图片的专属Tooltip
- 尝试通过适配器动态修改折线Tooltip内容,但因数据点过于密集,仅缩放图表后才能触发图片备注Tooltip,无法满足需求
尝试过的适配方案
lineSeries.adapter.add("tooltipHTML", function (text, target) { if (target._tooltipDataItem && target._tooltipDataItem._dataContext[NoteKey] != undefined) { return `<div class="ChartToolTip">${target._tooltipDataItem._dataContext[NoteKey]}</div>`; } if (FiscalPeriodValue == "IntraDay") { return `<div style="">{dateX.formatDate('yyyy-MM-dd HH:mm')}: {valueY.formatNumber('#,###.##')}</div>`; } else { return `<div style="">{dateX.formatDate('dd MMM, yyyy')}: {valueY.formatNumber('#,###.##')}</div>`; } });
内容的提问来源于stack exchange,提问作者Faizan
相关产品推荐
相关产品推荐

