我正在绘制如下几条曲线:
import numpy as np
import matplotlib.pyplot as plt
plt.plot(x, y)
其中x
和y
是二维的(比如本例中的N x 2)。
现在我想独立设置每条曲线的颜色。我尝试过这样的事情:
plot(x, y, color= colorArray)
例如colorArray= ['red', 'black']
,但无济于事。其他选项(linestyle,marker等)也是如此。
我知道这可以通过for
循环来完成。但是,由于此plot
命令接受多维x / y,我认为应该可以通过这种方式指定绘图选项。
有可能吗?这样做的正确方法是什么? (我在搜索时发现的一切都是有效地使用循环)
答案 0 :(得分:5)
您可以使用ax.set_color_cycle:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(2013)
N = 10
x, y = np.random.random((2,N,2))
x.cumsum(axis=0, out=x)
y.cumsum(axis=0, out=y)
fig, ax = plt.subplots()
colors = ['red', 'black']
ax.set_color_cycle(colors)
ax.plot(x,y)
plt.show()
的产率
答案 1 :(得分:1)
我会按照您的方式进行绘图,然后执行for
循环,相应地将颜色更改为colorArray
:
plt.plot(x,y)
for i, line in enumerate(plt.gca().lines):
line.set_color( colorArray[i] )
答案 2 :(得分:1)
我这样做时通常会传递一维数组,如下所示:
plot(x[0], y[0], 'red', x[1], y[1], 'black')