首页 > 解决方案 > 如何为 Bokeh 中的节点设置不同的图像?

问题描述

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

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,另一个是移动设备,是否可以用不同的图像或字形表示所有节点?

标签: python-3.xnetworkxbokeh

解决方案


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

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

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


推荐阅读