并排绘制networkx和nxvis图

时间:2017-06-24 08:48:47

标签: python python-3.x matplotlib

我想并排绘制这两个图像:

import networkx as nx
import matplotlib.pyplot as plt
import nxviz as nv

test_G = nx.tutte_graph()
nx.draw(test_G)
plt.show()

m = nv.MatrixPlot(test_G)
m.draw()
plt.show()

我尝试使用:

fig = plt.figure(figsize=(2,1))
sub1 = fig.add_subplot(211)
...

但是这会创建一组新的轴,是否有标准的方法并排绘制图像,plt.figure方法似乎仅在我想创建绘图时(例如绘制元组)。

1 个答案:

答案 0 :(得分:1)

nxvis的设计很糟糕。它以新鲜的身材创造了自己的硬编码111子图。一个选项可能是首先创建nxvis图,然后根据gridspec改变其位置。

(我还没有测试过这个,因为我无法安装这个nxviz包)

import networkx as nx
import matplotlib.pyplot as plt
import nxviz as nv
import matplotlib.gridspec

test_G = nx.tutte_graph()
m = nv.MatrixPlot(test_G)
m.draw()


gs = matplotlib.gridspec.GridSpec(2,1)
plt.gca().set_position(gs[1].get_position(plt.gcf()))
plt.gca().set_subplotspec(gs[1])

plt.subplot(gs[0])
nx.draw(test_G)

plt.show()