如何在python中具有相同轴的同一图上绘制多个信号

时间:2019-02-28 18:41:46

标签: python

我在同一图中手动表示了22个信号

plt.plot(components + [0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.35, 1.4, 1.45, 1.5, 1.55])
plt.yticks([0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.35, 1.4, 1.45, 1.5, 1.55], ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21'])
plt.xlim([0, 15000])
plt.show()

enter image description here

但是当我尝试自动执行此操作时。我没有成功。

for i in range(0, 21):
    plt.plot(components[:, i])

enter image description here

有没有人可以帮助我

1 个答案:

答案 0 :(得分:0)

我建议您在这里查看示例https://matplotlib.org/faq/howto_faq.html?highlight=multiple%20plots#multiple-y-axis-scales

源代码为:

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(111)
t = np.arange(0.01, 10.0, 0.01)
s1 = np.exp(t)
ax1.plot(t, s1, 'b-')
ax1.set_xlabel('time (s)')
ax1.set_ylabel('exp')

ax2 = ax1.twinx()
s2 = np.sin(2*np.pi*t)
ax2.plot(t, s2, 'r.')
ax2.set_ylabel('sin')
plt.show()

您可以看到他们使用了单独的ax2,但最终结果是将其放在一张图表上。您可以通过.twinx().twiny()选择在图之间保持相同的x比例或相同的y比例。