我正在尝试使用带有networkx的python创建一个图表,该网络有许多可以交互式调查的节点。我希望能够点击或悬停在节点上方并显示一个否则未显示的标签。
D3似乎能够做得很好,并且有几个python实现
和
mpld3适用于散点图,但我不知道如何让它做我想要的图形...
从Drew Conway实施 example code :
import networkx as nx
from networkx.readwrite import d3_js
给出
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name d3_js
这看起来像是一个错误,如果forked networkx包没有放在python的系统路径中,可能会导致....但是,我检查了sys路径内容并找到了networkx ...所以我&#39我很难过。
答案 0 :(得分:2)
看起来mpld3会起作用。您可以通过调用draw_networkx_nodes()
来获取散点图数据,scatter()
只是import matplotlib.pyplot as plt
import numpy as np
import mpld3
import networkx as nx
G = nx.path_graph(4)
pos = nx.spring_layout(G)
fig, ax = plt.subplots(subplot_kw=dict(axisbg='#EEEEEE'))
scatter = nx.draw_networkx_nodes(G, pos, ax=ax)
nx.draw_networkx_edges(G, pos, ax=ax)
labels = G.nodes()
tooltip = mpld3.plugins.PointLabelTooltip(scatter, labels=labels)
mpld3.plugins.connect(fig, tooltip)
mpld3.show()
的包装。
#!/bin/bash
read -p "enter a sentence: "
sentence="$(echo $REPLY | tr '[A-Z]' '[a-z]' | tr -dc [:alpha:])"
for (( i=0; i<${#sentence}; i++ ));
do echo -n "$(($(printf "%d " "'${sentence:$i:1}") - 96 )) "
done
echo