python - 在Python中的同一个图上绘制数组列表?

标签 python arrays numpy matplotlib

我有一个数组列表或一个数组数组,看起来像

a=[array1([.....]),array2([.....]),array3([....]),.....]

和一个单独的数组 b (不是列表)

b=np.array[()]

列表“a”中的所有数组的长度与“b”的长度相同。我想在 y 轴上的列表“a”和 x 轴上的“b”中绘制所有数组都在同一个图上。因此,一张图由 a[0] 与 b、a[1] 与 b、a[2] 与 b 等组成。

我该怎么做?

我试过了

f, axes = plt.subplots(len(a),1)
for g in range(len(a)):
    axes[g].plot(b,a[g])
    plt.show()

但这给了我很多相互堆叠的图,而且它们甚至没有所有数据。我希望一切都集中在一个地 block 上。

最佳答案

我刚刚找到了一些应该完成此任务的旧代码。尝试:

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)

编辑:每次生成相同的颜色集,如 this post 中的回答。 ,尝试:

colors = cm.rainbow(np.linspace(0, 1, len(a)))
for ydata, clr in zip(a, colors):
    plot, = ax.plot(b, ydata, color=clr)

np.linspace 为您提供“在指定间隔内均匀分布的数字”,[0,1] 用于此目的。

关于python - 在Python中的同一个图上绘制数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308660/

相关文章:

java - Fisher-Yates (java) 与 Collections.shuffle

python - 属性错误 : type object 'numpy.ndarray' has no attribute '__array_function__'

python - Numpy 数组不能在单个 [] 中建立索引

python - geckodriver 可执行文件需要在路径中

python - 执行 python 脚本时,列 'date' 的值超出范围

python - 为什么我的异步函数没有并行运行?

python - 数据帧 : looping through calling some variables while manually calling others

javascript - 防止 JSON.parse 重新排列对象

javascript - 将数组 array 打印到选定的对象

python - Keras 输入形状