如何为散景中的节点设置不同的图像?

问题描述

我了解如何使用以下代码更改节点的大小和颜色

graph = GraphRenderer()

# replace the node glyph with an ellipse
# set its height,width,and fill_color
graph.node_renderer.glyph = Ellipse(height=0.1,width=0.2,fill_color="fill_color")

但是如何更改某些节点的字形甚至添加图像,例如:一个节点可能是用户,另一个节点可能是电子邮件 ID,另一个节点可能是移动设备,是否可以用不同的方式表示所有这些节点?图像或字形?

解决方法

对此的一种方法是使用具有 marker 属性的 scatter marker 来参数化标记类型。 ColumDataSource 可以有一列指定每个节点的标记类型,或者您可以factor_mark 将数据源中的某些分类值映射到标记类型。

请注意,您将受限于标记类型,这些类型只能具有以屏幕(像素)单位指定的大小。如果您需要使用数据空间单位的矩形和椭圆,那么 Bokeh 可能不是最适合此用途的工具(除非您想手动绘制所有节点和边)。

或者,原则上似乎也可以对节点使用 image_url,这样每个节点都由从指定 URL 加载的图像表示(每个节点可以获得不同的图像 URL)。