我有一个数组列表或一个看起来像
的数组a=[array1([.....]),array2([.....]),array3([....]),.....]
和单独的数组b(不是列表)
b=np.array[()]
列表“a”中的所有数组与“b”的长度和长度相同。我想在y轴上列出“a”中的所有数组,在x轴上绘制“b”,所有这些都在同一个图上。所以一个图由a [0] vs b,a [1] vs b,a [2] vs b,...等组成。
我该怎么做?
我试过
f, axes = plt.subplots(len(a),1)
for g in range(len(a)):
axes[g].plot(b,a[g])
plt.show()
但这给了我很多相互叠加的情节,他们甚至没有所有的数据。我希望一切都在一块情节上。
答案 0 :(得分:0)
我刚刚发现了一些应该实现此目的的旧代码。尝试:
foo2()
修改:要按照this post中的回答每次生成相同的颜色集,请尝试:
foo()
import random
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
# define a and b here
# Helps pick a random color for each plot, used for readability
rand = lambda: random.randint(0, 255)
fig = plt.figure(figsize=(10,7.5))
ax = fig.add_subplot(111)
for ydata in a:
clr = '#%02X%02X%02X' % (rand(),rand(),rand())
plot, = ax.plot(b, ydata, color=clr)
为您提供“在指定时间间隔内均匀分布的数字”,[0,1]用于此目的。
答案 1 :(得分:0)
您只需要定义一个子图并在同一轴上绘制所有数组。
fig, ax = plt.subplots(1, 1)
for g in range(len(a)):
ax.plot(b, a[g])
plt.show()