在一个单独的图中循环的多个图形 - Python

时间:2015-02-03 20:02:17

标签: python matplotlib plot

我的程序生成两个数组,我必须在X轴上绘制其中一个数组,在Y轴上绘制另一个数组(后者取自矩阵的行)。

问题是我必须多次重复此操作(我正在运行循环),但所有图形应该在同一个图上。每次点应该是不同的颜色。然后我应该保存文件。

我试过

for row in range(6):
    plt.plot(betaArray, WabArray[row], 'ro')
    plt.show()

但是这只显示每个迭代的一个图,并且总是具有相同的颜色。

1 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情:

import numpy as np
import matplotlib.pylab as plt
import matplotlib as mpl

x = [1,2,3,4]
y_mat = np.array([[1,2,3,4], [5,6,7,8]])

n, _ = y_mat.shape

colors = mpl.cm.rainbow(np.linspace(0, 1, n))
fig, ax = plt.subplots()
for color, y in zip(colors, y_mat):
    ax.scatter(x, y, color=color)
plt.show()

这会从n颜色贴图中创建rainbow颜色,并使用scatter绘制相应颜色的点。您可能想要切换到不同的颜色贴图,甚至手动选择颜色。

结果如下:

plot6