我正在寻求有关如何使graph A看起来像graph B的信息,同时保持弯曲的边缘。两者之间的唯一区别是,我通过在代码中设置arrows = False
来生成图B,从而删除了箭头。
如果我移开箭头,则弯曲的边缘将不再正常工作,并且所有边缘都是笔直的。但是,至少边缘完全连接到节点。我的数据是一个包含源节点和目标节点以及相应权重的csv文件:
Napoleon Myriel 1
Mlle.Baptistine Myriel 8
Mme.Magloire Myriel 10
Mme.Magloire Mlle.Baptistine 6
CountessdeLo Myriel 1
任何帮助将不胜感激!我的代码如下:
import matplotlib.pyplot as plt
import pandas as pd
import networkx as nx
df = pd.read_csv('path_to_data')
G = nx.from_pandas_edgelist(df, source='source', target='target', edge_attr='value',
create_using=nx.DiGraph())
pos = nx.layout.spring_layout(G, k=0.5, iterations=200)
fig, ax = plt.subplots()
node_color = [G.degree(v) for v in G]
nodes = nx.draw_networkx_nodes(G, pos, node_size = 5, node_color= node_color, cmap='plasma')
edges = nx.drawing.nx_pylab.draw_networkx_edges(G, pos, connectionstyle = 'arc3,rad=0.2',
alpha = 0.15, edge_color='red', width=0.5,
arrows = True, arrowsize = 4)
ax.axis('off')
fig.set_facecolor('black')