我正在为Bokeh可视化中的所有点分配标签。
但是,为每个点分配标签会使事情变得过于拥挤。有100分以上。
因此,我在pandas df中创建了一个新列,其中只有10个随机行的标签值。其他行具有NaN值。
有没有办法让Bokeh忽略NaN值而不为它们创建标签?
labels = LabelSet(x='myDateColumn', y='myNumericColumn', text='columnWithOnly10RowsHavingTextValue', level='glyph',
x_offset=5, y_offset=5, source=source, render_mode='canvas')
p.add_layout(labels)
答案 0 :(得分:0)
您可以为标签创建一个新的数据框,并删除带有NaN值的行,将其转换为ColumnDataSource并将其用作标签的源。
df = pd.DataFrame.from_dict(data)
source = ColumnDataSource(df)
p.circle(x='myDateColumn', y='myNumericColumn', source=source)
dfNoNaN = df.dropna()
noNaNsource = ColumnDataSource(dfNoNaN)
labels = LabelSet(x='myDateColumn', y='myNumericColumn', text='columnWithOnly10RowsHavingTextValue', level='glyph',
x_offset=5, y_offset=5, source=noNaNsource, render_mode='canvas')
p.add_layout(labels)