Matplotlib子图轴

时间:2013-03-05 19:14:45

标签: python matplotlib networkx

对此问题的任何帮助表示赞赏。我正在尝试使用matplotlib制作子图,我编写的代码如下:

import networkx as nx

Fig, Axes = plt.subplots(nrows=1, ncols=2)
plt.tight_layout()
for i in range(0, NoOfVehicles):
  Axes[i].set_aspect(1)
  Axes[i].xaxis.set_major_formatter(mtick.NullFormatter())
  Axes[i].yaxis.set_major_formatter(mtick.NullFormatter()

现在我如何在第一个情节中绘制一些东西,然后在第二个情节中绘制其他东西。

我想做

nx.drawing.nx_pylab.draw_networkx_nodes(GPlot[0].G, GPlot[0].Position, node_size=100, node_color=GPlot[0].Color)

在第一个情节和

nx.drawing.nx_pylab.draw_networkx_nodes(GPlot[1].G, GPlot[1].Position, node_size=100, node_color=GPlot[1].Color)

在第二个。

总之,这就是我想要做的:我希望第一组节点进入子图(1,2,1),第二组进入子图(1,2,2)。但两者都出现在相同的情节中(1,2,2)。

GPlot只是一个包含GraphPlot类的2个对象的列表

class GraphForPlot:
    def __init__(self):
        self.G = nx.Graph()
        self.Components = []
        self.ActiveStatus = {}
        self.Nodes = []
        self.Position = {}
        self.Color = []

1 个答案:

答案 0 :(得分:0)

你需要告诉netwkorkx要绘制哪些轴,如果不这样,它将绘制到当前活动的轴(plt.gca()返回的内容(doc)。

nx.drawing.nx_pylab.draw_networkx_nodes(..., ax=Axes[0])
nx.drawing.nx_pylab.draw_networkx_nodes(..., ax=Axes[1])

作为旁注,你不应该使用驼峰式实例变量(pep8),它可以倾向于与类名冲突(在这种情况下为matplotlib.axes.Axes)。