我使用循环创建绘图,我希望这些绘图共享它们的x轴。以下是代码的示例。当然,绘制的val和函数更复杂。我希望所有子图共享x轴。
import matplotlib.pyplot as plt
import numpy as np
val = [0.1, 0.2, 0.3]
nplots = len(val)
plt.figure()
for i, alpha in enumerate(val):
plt.subplot(nplots,1,i+1)
plt.plot(np.linspace(0,1,100), a * np.linspace(0,1,100)**2)
plt.show()
答案 0 :(得分:2)
如果我正确理解了这个问题,这里的配方示例可能会有所帮助:
http://matplotlib.org/examples/pylab_examples/shared_axis_demo.html
在您的上下文中,这是怎么做到的?
fig = plt.figure()
ax0 = plt.subplot(nplots,1,1)
plt.plot(np.linspace(0,1,100), a * np.linspace(0,1,100)**2)
for i, alpha in enumerate(val):
plt.subplot(nplots,1,i+2,sharex=ax0)
plt.plot(np.linspace(0,1,100), a * np.linspace(0,1,100)**2)
plt.show()
修改强> 使用OP可能更喜欢的解决方案更新我自己的答案:
vals = np.linspace(0,1,3)
nplots = len(vals)
fig, axs = plt.subplots(nrows=nplots, ncols=1, sharex=True)
for i, alpha in enumerate(vals):
axs[i].plot(np.linspace(0,1,100), alpha * np.linspace(0,1,100)**2)
plt.show()