如何在散景中更改边缘颜色?

时间:2018-07-24 21:20:36

标签: python bokeh

我正在构建图形,并试图弄清楚如何为边缘着色。 到目前为止,我只有彩色的节点。

gr.node_renderer.data_source.add(list(self.graph.vertices.keys()), 'index')
gr.node_renderer.data_source.add(self._get_colors(), 'color')
gr.node_renderer.glyph = Circle(size=circle_size, fill_color='color')

gr.edge_renderer.data_source.data = self._get_edges()
gr.edge_renderer.glyph = MultiLine(line_color="#CCCCCC", line_alpha=0.8, line_width=5)

我通过查看示例here获得了这段代码。

我认为也许我可以将node替换为edge并使用类似的方法

gr.edge_renderer.data_source.add(self._get_edge_colors(), 'color')
gr.edge_renderer.glyph = MultiLine(line_color='color', line_alpha=0.8, line_width=5)

但是它不起作用,给了我一个错误

BokehUserWarning: ColumnDataSource's columns must be of the same length. Current lengths: ('color', 13), ('end', 0), ('start', 0)
  "Current lengths: %s" % ", ".join(sorted(str((k, len(v))) for k, v in data.items())), BokehUserWarning))
ERROR:bokeh.core.validation.check:E-1001 (BAD_COLUMN_NAME): Glyph refers to nonexistent column name: color [renderer: GlyphRenderer(id='2d50eb47-abef-453a-8c39-2cb2a5e472ce', ...)]

不确定为什么说('end', 0), ('start', 0),因为_get_edges()输出的完整字典的大小与_get_edge_colors输出的颜色列表相同

0 个答案:

没有答案
相关问题