在另一个子图上绘制Networkx图后,轴消失了

时间:2019-06-07 14:42:25

标签: python matplotlib networkx

我尝试在一个子图上进行图形可视化,并在另一子图上进行某些值的折线图。但是,在第一个子图上绘制图形后,另一个子图上的轴消失了(尽管我不允许任何共享轴)。我不能把他们带回来。

import networkx as nx
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)
G = nx.graph_atlas(1)
nx.draw(G, ax=ax1)
plt.show()

结果: enter image description here 没有nx.draw()时,它是: enter image description here

我尝试过在ax2.get_yaxis().set_visible(True)之后调用nx.draw(G, ax=ax1),但没有效果。

问题1::如何还原ax2上的轴?
第二季度: nx.draw(G,ax=ax1)如何影响ax2

1 个答案:

答案 0 :(得分:1)

问题是networkx中的错误。而不是关闭轴ax的刻度标签,而是调用plt.tick_params(...)。这将影响当前活动的pyplot轴,在您的情况下为ax2

因此,一种选择是在{中的417692行以及806959行中,用源中的plt.tick_params(替换ax.tick_params( {1}}。

我刚刚在https://github.com/networkx/networkx/pull/3476

中为此创建了PR

另一种选择是确保当前pyplot轴是图形所在的轴,例如通过networkx/networkx/drawing/nx_pylab.py

plt.sca(ax1)