我一直在尝试使用matplotlib.pyplot.subplots
生成 2x3数字,其中第一行和第二行分别使用plot
和loglog
命令。
因此,我尝试配置subplots
,以便同一行中的绘图共享相同的y轴。
但是,loglog
y轴(后一行)出现在plot
y轴(前一行)中。
如果可能的话,请您告诉我们一个可行的配置吗?
具有随机数据集的MWE可能如下所示:
plt.clf()
data = np.arange(0.01, 20.0, 0.01)
f, axarr = plt.subplots(2, 3, sharey=True)
for i, ax in enumerate(axarr[0].flatten()):
ax.plot(data, np.exp(-data / 5.0))
for i, ax in enumerate(axarr[1].flatten()):
ax.loglog(data, np.exp(-data / 5.0))
plt.show()
plt.close()
结果:
答案 0 :(得分:0)
我现在设计了一种配置此类行为的可怕的方式:
plt.clf()
data = np.arange(0.01, 20.0, 0.01)
f, axarr = plt.subplots(2, 3, sharey=False)
for i, ax in enumerate(axarr[0].flatten()):
ax.plot(data, np.exp(-data / 5.0))
if i > 0:
ax.set_yticklabels([])
for i, ax in enumerate(axarr[1].flatten()):
ax.loglog(data, np.exp(-data / 5.0))
if i > 0:
ax.set_yticklabels([])
plt.show()
plt.close()
导致:
答案 1 :(得分:0)
我猜你正在寻找:
f, axarr = plt.subplots(2, 3, sharey='row')
从 docs,将这些值传递给 sharex
或 sharey
:
row
:每个子图行将共享一个 x 轴或 y 轴。col
:每个子图列将共享一个 x 轴或 y 轴。