我的数据如下:
parsed_points = [(u'USD', u'JPY', -4.566), (u'USD', u'USD', -0.0), (u'JPY', u'EUR', 4.821), (u'BTC', `u'USD', -4.91), (u'JPY', u'BTC', 9.361), (u'USD', u'EUR', 0.314), (u'EUR', u'USD', -0.117), (u'EUR', u'JPY', -4.746), (u'JPY', u'USD', 4.57), (u'BTC', u'BTC', -0.0), (u'EUR', u'BTC', 4.621), (u'BTC', u'JPY', -9.539), (u'JPY', u'JPY', -0.0), (u'BTC', u'EUR', -4.606), (u'EUR', u'EUR', -0.0), (u'USD', u'BTC', 4.854)]`
可以看出,有些节点的边缘来自和到达每个节点。问题是当我用networkx绘制节点时,边缘是彼此重叠的:
import networkx as nx
import matplotlib.pyplot as plt
...
parsed_points = map(parse_point, obj.items())
dg = build_graph(parsed_points)
pos = nx.spring_layout(dg, k = 0.95, iterations = 150)
nx.draw_networkx_edge_labels(dg, pos, edge_labels = edge_labels)
nx.draw(dg, pos, cmap = plt.get_cmap('jet'), node_color = values, node_size = 1500, edge_color = edge_colors, edge_cmap = plt.cm.Reds)
这个问题的解决方案是什么?也许使用弧而不是[如果可能的话]边缘线?