Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python中的networkX包绘制图形分区_Python_Graph_Networkx_Graph Drawing - Fatal编程技术网

使用Python中的networkX包绘制图形分区

使用Python中的networkX包绘制图形分区,python,graph,networkx,graph-drawing,Python,Graph,Networkx,Graph Drawing,我有一个图形对象G,其中节点从0到n-1和两个列表L1L2,它们是G节点的分区。我希望以这样的方式绘制G,节点结果被划分为两个块:一个相对于L1,另一个相对于L2。图片的目的应该是证明L1和L2之间的联系。你能帮我完成这项任务吗 非常感谢。分别绘制每个图形,并使用不相交的乘积生成一个显示边的新图形: import networkx as nx n1, n2 = 10, 10 # Define two random graphs g1 = nx.gnm_random_graph(n1,20)

我有一个图形对象
G
,其中节点从
0
n-1
和两个列表
L1
L2
,它们是
G
节点的分区。我希望以这样的方式绘制
G
,节点结果被划分为两个块:一个相对于
L1
,另一个相对于
L2
。图片的目的应该是证明
L1
L2
之间的联系。你能帮我完成这项任务吗


非常感谢。

分别绘制每个图形,并使用不相交的乘积生成一个显示边的新图形:

import networkx as nx

n1, n2 = 10, 10

# Define two random graphs
g1 = nx.gnm_random_graph(n1,20)
g2 = nx.gnm_random_graph(n2,20)
pos1 = nx.graphviz_layout(g1,prog='dot')
pos2 = nx.graphviz_layout(g2,prog='dot')

# Shift graph2
shift = 400
for key in pos2:
    pos2[key] = (pos2[key][0]+shift, pos2[key][1])

# Combine the graphs and remove all edges
g12 = nx.disjoint_union(g1,g2)
for i,j in g12.edges():
    g12.remove_edge(i,j)

# Add the conjoined edges
g12.add_edge(5, 7+n1)
g12.add_edge(2, 3+n1)
g12.add_edge(8, 7+n1)

# Set the new pos for g12
pos12 = pos1.copy()
for node in pos2:
    pos12[node+n2] = pos2[node]

# Show the results, make the conjoined edges darker

import pylab as plt
nx.draw_networkx(g1,pos=pos1,alpha=0.5)
nx.draw_networkx(g2,pos=pos2,alpha=0.5)
nx.draw_networkx_edges(g12,pos=pos12,width=5)
plt.axis('off')
plt.show()


你试过什么?你能给我们展示一下你的代码或者你想画什么吗?