如何将x轴分成一个循环?

时间:2014-06-17 20:01:44

标签: python matplotlib

我使用循环创建绘图,我希望这些绘图共享它们的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()

1 个答案:

答案 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()