Python Networkx标签易读性问题-市场篮子分析
我试图使networkx循环图(python)的标签更清晰。下面是我的代码和视觉效果的当前状态。 我正试图更好地将我在进行的市场篮子分析中确定的关系形象化 有没有办法使标签更清晰易读,或者你会推荐一种不同的方法来可视化数据?谢谢Python Networkx标签易读性问题-市场篮子分析,python,networkx,market-basket-analysis,Python,Networkx,Market Basket Analysis,我试图使networkx循环图(python)的标签更清晰。下面是我的代码和视觉效果的当前状态。 我正试图更好地将我在进行的市场篮子分析中确定的关系形象化 有没有办法使标签更清晰易读,或者你会推荐一种不同的方法来可视化数据?谢谢 G = nx.from_pandas_edgelist(df4, 'antecedents', 'consequents') nx.draw(G, with_labels=True, node_size=100, node_color="skyblue", pos=nx
G = nx.from_pandas_edgelist(df4, 'antecedents', 'consequents')
nx.draw(G, with_labels=True, node_size=100, node_color="skyblue", pos=nx.circular_layout(G))
plt.figure(figsize=(50,50))
很难分析图形,但看起来圆形布局不适合。例如:
import networkx as nx
G = nx.fast_gnp_random_graph(50, 0.05)
nx.draw(G, pos=nx.circular_layout(G), node_size=50)
而spring布局正是针对此图:
nx.draw(G,pos=nx.spring\u布局(G),节点大小=50)
显示了更好的可视化效果
但是,如果您确实需要图形的圆形布局,您可以使用我的另一个答案中的一些技巧: 这将迫使
matplotlib
在巨大的图像表面上绘制图形:
import networkx as nx
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(40, 40))
G = nx.fast_gnp_random_graph(300, 0.02, seed=1337)
nx.draw(G, node_size=30)
plt.axis('equal')
plt.show()
fig.savefig('waka.svg')
我实现了你的代码并添加了标签;视觉效果现在更大/更分散,但关系现在可以区分。此外,spring布局似乎更合适。感谢您的帮助+洞察力!如果您能回答,我还有一个问题:是否可以减少线重叠(使用spring布局时?)我有3个大集群和几个小集群,我很好奇是否可以防止它们重叠。此外,是否有可能减少每个簇内的线重叠(例如,减少上面大型spring布局簇中的线重叠量)如果图形非常密集,则无法避免边缘重叠,如果有多个连接的组件,则可以分别可视化它们(按照链接查看那里的代码)。弹簧布局用于最小化重叠,因此图形图片是次优的。如果它仍然看起来不好,你应该玩边缘颜色,重量等。