我一直在探索如何使用PointDraw流在hv.Points图中为一个点着色。但是,这似乎并不简单。看来我无法使用默认方法将新点着色为其他颜色。它只能是单一的静态颜色。如果有人解决了这个问题,请告诉我。
这是我尝试过的一些代码:(请注意,添加新点后,它始终为黑色)
data = ([0, 0.5, 1], [0, 0.5, 0], ['red', 'green', 'blue'])
points_source = hv.Points(data, vdims='color').redim.range(x=(-.1, 1.1), y=(-.1, 1.1))
points_source_stream = streams.PointDraw(data=points_source.columns(), num_objects=10, source=points_source, empty_value='black')
points_source.opts(
opts.Points(active_tools=['point_draw'], color='color', height=400,
size=10, tools=['hover'], width=400))
contents = []
def f(data):
colors = data['color']
colors[-1] = 'red'
data['color'] = colors
contents.append(data)
points_source_stream.update(data)
contents
points_source_stream.add_subscriber(f)
理想情况下,我想将生成器传递给empty_value方法:
def colors():
while(True):
yield 'red'
yield 'green'
yield 'blue'
points_source_stream = streams.PointDraw(data=points_source.columns(), num_objects=10, source=points_source, empty_value=colors)