我建议在标签周围放置一个bbox而不是改变节点的形状。在这种情况下,节点将在框内“包含名称”,为此需要将bbox参数指定为字典。
nx.draw(G, pos=pos, with_labels=True, node_shape="s", node_color="none", bbox=dict(facecolor="skyblue", edgecolor='black', boxstyle='round,pad=0.2'))
您也可以考虑这个解决方案在这里
nx.draw_networkx_nodes(G, pos, node_size=600, node_color='w', alpha=0.4, node_shape='d')
nx.draw_networkx_labels(G, pos, font_size=20, font_family='sans-serif')
要查看完整示例,您可以查看networkx图库的代码这里。
编辑:为了适应节点内的名称,您需要调整节点大小和字体大小。
证明: