1

この問題に関するヘルプは大歓迎です。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()

さて、最初のプロットで何かをプロットし、次に 2 番目のプロットで何かをプロットするにはどうすればよいでしょうか。

私はやってみたいです

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)に入れ、2番目をサブプロット(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 = []
4

1 に答える 1

1

どの軸に描画するかを指定する必要があり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)。

于 2013-03-05T19:34:27.837 に答える