Python Matplotlib:带有二维参数的绘图:如何指定选项?

时间:2013-06-18 14:10:04

标签: python colors matplotlib plot

我正在绘制如下几条曲线:

import numpy as np
import matplotlib.pyplot as plt

plt.plot(x, y)

其中xy是二维的(比如本例中的N x 2)。

现在我想独立设置每条曲线的颜色。我尝试过这样的事情:

plot(x, y, color= colorArray)

例如colorArray= ['red', 'black'],但无济于事。其他选项(linestyle,marker等)也是如此。

我知道这可以通过for循环来完成。但是,由于此plot命令接受多维x / y,我认为应该可以通过这种方式指定绘图选项。

有可能吗?这样做的正确方法是什么? (我在搜索时发现的一切都是有效地使用循环)

3 个答案:

答案 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()

的产率 enter image description here

答案 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')