使用 bundle_graph/datashader 构建图形时出错

Error when building graph with bundle_graph/datashader

我正在阅读 this 教程来学习一些关于数据着色器和散景的知识。

除了少数几个例子,大部分似乎都不错。例如,这段代码:

    %%opts Nodes (size=5)
    graph = layout_nodes(hv.Graph(edges_df), layout=forceatlas2_layout)
    forceatlas = bundle_graph(graph, split=False)
    pad = dict(x=(-.5, 1.3), y=(-.5, 1.3))
    datashade(forceatlas, width=800, height=800, cmap=fire[128:]) * forceatlas.nodes.redim.range(**pad)  

产生以下错误:

      1 graph = layout_nodes(hv.Graph(edges_df), layout=forceatlas2_layout)
----> 2 forceatlas = bundle_graph(graph, split=False)
      3 pad = dict(x=(-.5, 1.3), y=(-.5, 1.3))
      4 datashade(forceatlas, width=800, height=800, cmap=fire[128:]) * forceatlas.nodes.redim.range(**pad)
...
    493         for i in range(10):
    494             for batch in edge_segments:
--> 495                 smooth(batch, p.tension, segment_class.idx, segment_class.idy)
    496 
    497         # Flatten things

TypeError: can't unbox heterogeneous list

听起来你在打this bug,它已在datashader master 上修复,将包含在下一个版本(Datashader 0.7) 中。同时,你可以将Numba降级到0.38.1,应该可以避免这个问题。