如何解决密谋:在on_click evet上的散点图中更改标记文本
我正在跟踪一个示例,该示例如何使用单击事件更新散点图中的点 https://plotly.com/python/click-events/。
示例中的回调函数在单击时会更新标记的颜色和大小。 (请在提取代码后查看我的问题)
# create our callback function
def update_point(trace,points,selector):
id=trace.ids[points.point_inds[0]]
c = list(scatter.marker.color)
s = list(scatter.marker.size)
for i in points.point_inds:
#change only this one
c[i] = '#bae2be'
s[i] = 20
with f.batch_update():
scatter.marker.color = c
scatter.marker.size = s
我的问题是:您如何在单击时更新标记文本(在本例中为Scatter-object的text参数)?
谢谢
迈克尔
解决方法
经过一些挖掘:
文本不是标记对象的属性。而是它是Scatter对象的列表类型属性,这意味着您必须更新文本列表的适用元素。
这是原始示例之后的更新后的回调函数:
# create our callback function
def update_point(trace,points,selector):
id=trace.ids[points.point_inds[0]]
c = list(scatter.marker.color)
s = list(scatter.marker.size)
for i in points.point_inds:
#change only this one
c[i] = '#bae2be'
s[i] = 20
**ids[i]+=ids[i] #duplicate text to test effect**
with f.batch_update():
scatter.marker.color = c
scatter.marker.size = s
**f.data[0]['text']=ids #update the entire text-list-property**
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。