我尝试在一个子图上进行图形可视化,并在另一子图上进行某些值的折线图。但是,在第一个子图上绘制图形后,另一个子图上的轴消失了(尽管我不允许任何共享轴)。我不能把他们带回来。
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()
我尝试过在ax2.get_yaxis().set_visible(True)
之后调用nx.draw(G, ax=ax1)
,但没有效果。
问题1::如何还原ax2
上的轴?
第二季度: nx.draw(G,ax=ax1)
如何影响ax2
?
答案 0 :(得分:1)
问题是networkx中的错误。而不是关闭轴ax
的刻度标签,而是调用plt.tick_params(...)
。这将影响当前活动的pyplot轴,在您的情况下为ax2
。
因此,一种选择是在{中的417和692行以及806和959行中,用源中的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)