Plotly节点点击时修改标记半径失效问题求助
Plotly节点点击时修改标记半径失效问题求助
嘿,我瞅了你的代码,马上发现问题出在哪了!你在Plotly.restyle里判断节点是否被选中的条件写错啦😯
你原来写的是:
size: nodes.map((_, i) => i === selection ? 12 : 6),
这里的selection是一个存储选中节点索引的对象(比如{0: ..., 2: ...}),而i是节点的数字索引,拿数字和整个对象做全等判断,结果永远是false,所以所有节点的大小都被设成了6。
只要把判断条件改成i in selection,就能正确识别哪些节点在选中集合里了,修正后的代码片段如下:
setTimeout(() => { Plotly.restyle('myDiv', { marker: { size: nodes.map((_, i) => i in selection ? 12 : 6), color: nodes.map((_, i) => i in selection ? 'blue' : 'red') } }); }, 150);
这个修改的逻辑很简单:i in selection会检查当前节点的索引i是不是选中对象里的键,是的话就把大小设为12,否则保持6。这样点击单个节点时,它的标记会变大;按住Shift点击还能多选/取消选中,对应的节点大小都会正确变化啦。
备注:内容来源于stack exchange,提问作者Natasha
相关产品推荐
相关产品推荐

