Python Networkx图形标签部分位于框外

Python Networkx图形标签部分位于框外,python,networkx,Python,Networkx,只需画一个非常简单的4节点网络 import networkx as nx import matplotlib.pyplot as plt G = nx.Graph() node1 = "116.251.211.248" node2 = "5.79.100.165" node3 = "http.anturis.com" node4 = "s411993.ip-37-187-141.eu" G.add_node(node1) G.add_node(node2) G.add_node(node3)

只需画一个非常简单的4节点网络

import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
node1 = "116.251.211.248"
node2 = "5.79.100.165"
node3 = "http.anturis.com"
node4 = "s411993.ip-37-187-141.eu"
G.add_node(node1)
G.add_node(node2)
G.add_node(node3)
G.add_node(node4)
G.add_weighted_edges_from([(node1, node2, 0.742345), (node1, node3, 0.916954), (node1, node4, 0.662011), (node1, node4, 0.818537), (node2, node3, 0.947824), (node2, node4, 0.800774), (node3, node4, 0.928537)])
pos=nx.shell_layout(G)
nx.draw(G, pos, with_labels=True)
plt.show()
我的问题是边缘标签部分落在框外


我不熟悉使用networkx绘图。如何在左侧和右侧添加页边距,以便显示完整的标签?

不幸的是,似乎没有自动修复页边距的程序。您可以通过调用
plt.xlim(xmin,xmax)
手动调整页边距。由于您知道节点位置(
pos
),因此可以在每侧添加额外的25%:

#Your code here....
nx.draw(G, pos, with_labels=True)
x_values, y_values = zip(*pos.values())
x_max = max(x_values)
x_min = min(x_values)
x_margin = (x_max - x_min) * 0.25
plt.xlim(x_min - x_margin, x_max + x_margin)
plt.show()