如何解决如何在am4charts中添加单个系列项目符号?
这是我的情况:动态绘制线系列,在某个点上我想添加一个系列项目符号。理想情况下,该子弹应具有一个ID,以后可通过该ID将其删除。
到目前为止,我所有的尝试都导致将项目符号添加到每个系列数据点(以下代码):
var bullet = series.bullets.push(new am4charts.CircleBullet());
bullet.width = 10;
bullet.height = 10;
bullet.fillOpacity = 1;
bullet.strokeWidth = 0;
创建图表后,我可以随时触发此操作(也就是说,在绘制了10个数据点之后),但是它仍然向每个数据点添加了项目符号。我想出了一种方法,可以将它们全部添加为0不透明度,然后在单个选择的项目符号上更新不透明度。但是,我目前还无法访问单个项目符号,因此任何指针都将不胜感激。第一次更新时,它将更改为最后添加的数据点。
最后,他们的项目符号文档确实提到了ID参数,但是如果我这样创建它:
bullet.id = 'some unique long id';
...它没有附着任何东西。 我希望以上信息足以使我摆脱困境。提前非常感谢您!
解决方法
好吧,这就是答案:项目符号被添加到每个数据点,并且(据我所知)不可能仅添加一个。因此,添加带有fillOpacity = 0的项目符号,然后在向图表添加新值后,使用项目符号适配器过滤正确的项目符号并进行更新:
bullet.adapter.add("fillOpacity",function(fill,target) {
if (!target.dataItem) {
return fillOpacity;
}
var values = target.dataItem.values;
return values.dateX.value < new Date(2018,3,3)? 0: 1;
});
它与DateAxis一起使用,因此可以与日期进行比较。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。