一个图中的一个循环中的多个图 - Python
multiple graphs from a loop in one single plot - Python
我的程序生成两个数组,我必须在 X 轴上绘制一个,另一个在 Y 轴上绘制(后者取自矩阵的行)。
问题是我必须重复这个操作很多次(我是运行一个循环)但是所有的图应该在同一个图上。每次点应该是不同的颜色。然后我应该保存文件。
我试过
for row in range(6):
plt.plot(betaArray, WabArray[row], 'ro')
plt.show()
但这每次迭代只显示一个图,并且颜色始终相同。
您可以尝试这样的操作:
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()
这会从 rainbow
颜色图中创建 n
颜色,并使用 scatter
绘制相应颜色的点。您可能想要切换到不同的颜色贴图,甚至手动选择颜色。
这是结果:
我的程序生成两个数组,我必须在 X 轴上绘制一个,另一个在 Y 轴上绘制(后者取自矩阵的行)。
问题是我必须重复这个操作很多次(我是运行一个循环)但是所有的图应该在同一个图上。每次点应该是不同的颜色。然后我应该保存文件。
我试过
for row in range(6):
plt.plot(betaArray, WabArray[row], 'ro')
plt.show()
但这每次迭代只显示一个图,并且颜色始终相同。
您可以尝试这样的操作:
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()
这会从 rainbow
颜色图中创建 n
颜色,并使用 scatter
绘制相应颜色的点。您可能想要切换到不同的颜色贴图,甚至手动选择颜色。
这是结果: