我正在使用一种手动分类工具,该工具可以更改散景图中散点图中选择的某些点(在我的情况下为颜色)的属性。我通过s.data = d2和s.change.emit()更改了回调中的源数据,但是都失败了。我以为这样的操作会更改source.data,但是当我打印source.data时,实际上什么也没发生。绘图中点的颜色会按预期变化。这是我的相关代码:
DF = pd.read_csv(csv_path)
s = ColumnDataSource(DF_file)
p = figure(plot_width=500, plot_height=500, tooltips=TOOLTIPS,tools="lasso_select, tap", title="manual classification")
circles = p.circle('x', 'y', color='color', size=10, source=s, line_alpha=0.6,fill_alpha=0.6)
s.callback = CustomJS(args=dict(s1=s), code="""
var inds = cb_obj.selected.indices;
var d1 = s1.data;
for (var i = 0; i < inds.length; i++)
{d1['color'][inds[i]] = 'green';}
s1.change.emit();
""")
打印文件(s.data)和从s.to_csv(xxx)保存的csv文件均未显示对原始输入数据的更改。另外,我想知道当python中的数据是在args=(s1=s)
中传递给它的数据时,回调如何工作以更改图的数据,同时使python中的数据保持不变。
我正在使用一种手动分类工具,该工具可以更改散景图中散点图中选择的某些点(在我的情况下为颜色)的属性。我通过s.data = d2和...