4

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

import numpy as np
import matplotlib.pyplot as plt

plt.plot(x, y)

其中xy是二维的(为了这个例子,比如 N x 2)。

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

plot(x, y, color= colorArray)

与 eg colorArray= ['red', 'black'],但无济于事。其他选项(线条样式、标记等)也是如此。

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

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

4

3 回答 3

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

产量 在此处输入图像描述

于 2013-06-18T14:20:44.367 回答
1

我会按照您的方式进行绘图,然后for根据您的情况进行循环更改颜色colorArray

plt.plot(x,y)
for i, line in enumerate(plt.gca().lines):
    line.set_color( colorArray[i] )
于 2013-06-18T14:15:20.263 回答
1

我通常在这样做时传递一维数组,如下所示:

plot(x[0], y[0], 'red', x[1], y[1], 'black')
于 2013-06-18T14:15:59.217 回答