AmCharts 4 Force Directed Chart - Select Bubble by Parent -> Child Location
AmCharts 4 Force Directed Chart - Select Bubble by Parent -> Child Location
使用 AmCharts 网站 (here) 提供的演示图表,如果我知道父级 Phoebe
和子级 David
,我如何以编程方式获取 David
泡沫?
我的目标是改变气泡的填充,我可以在事件处理程序中完成。考虑到我必须使用的内容,我只是不确定如何以编程方式 select 我想要的元素。
编辑:我意识到我可以遍历 graph.data
并修改 color
属性,但我不能调用 graph.invalidateRawData()
因为它不会拾取颜色变化(说得通)。我真的宁愿不必强制重绘完整的图表!
谢谢!
获取所需节点的最简单方法是设置 id 数据字段(它可以与您的名称字段相同)并使用 series.getDataItemById
方法检索数据项。
function changeColor(){
let dataItem = networkSeries.getDataItemById(networkSeries.dataItems, "Fifth");
dataItem.node.circle.fill = am4core.color("#00ff00");
// change color of all children
dataItem.children.each(function(child){
child.node.circle.fill = am4core.color("#00ffff");
})
}
这是一个演示:
https://codepen.io/team/amcharts/pen/mZMYKx
该演示还说明了如何访问和更改数据项的所有子项的颜色。
使用 AmCharts 网站 (here) 提供的演示图表,如果我知道父级 Phoebe
和子级 David
,我如何以编程方式获取 David
泡沫?
我的目标是改变气泡的填充,我可以在事件处理程序中完成。考虑到我必须使用的内容,我只是不确定如何以编程方式 select 我想要的元素。
编辑:我意识到我可以遍历 graph.data
并修改 color
属性,但我不能调用 graph.invalidateRawData()
因为它不会拾取颜色变化(说得通)。我真的宁愿不必强制重绘完整的图表!
谢谢!
获取所需节点的最简单方法是设置 id 数据字段(它可以与您的名称字段相同)并使用 series.getDataItemById
方法检索数据项。
function changeColor(){
let dataItem = networkSeries.getDataItemById(networkSeries.dataItems, "Fifth");
dataItem.node.circle.fill = am4core.color("#00ff00");
// change color of all children
dataItem.children.each(function(child){
child.node.circle.fill = am4core.color("#00ffff");
})
}
这是一个演示: https://codepen.io/team/amcharts/pen/mZMYKx
该演示还说明了如何访问和更改数据项的所有子项的颜色。