当我一次性绘制三条线时,matplotlib通过当前循环器的三个步骤进行采样,给出每个自己的风格:
In [11]: x = linspace(0, 5, 50)
In [12]: y = vstack([x**2, x**3, x**4]).T
In [13]: plot(x, y)
Out[13]:
[<matplotlib.lines.Line2D at 0x7edfa9144550>,
<matplotlib.lines.Line2D at 0x7edfa9144b38>,
<matplotlib.lines.Line2D at 0x7edfa9144cf8>]
我可以使用plot(x, y, color="black")
使它们具有相同的颜色。但是,我不希望它们都是黑色的;我希望每一行都遵循循环的当前(下一个)状态。
获取current state充其量是麻烦的。我可以展开x
并展平y
以使所有三个具有相同的风格:
In [54]: plot(vstack([x]*3).ravel(), y.T.ravel())
但是这会产生连接三者的虚假线,所以它只适用于绘制标记而不是线条的绘图样式。
有没有一种令人愉快的方法告诉matplotlib我想使用相同的循环状态来绘制多条线?
答案 0 :(得分:2)
这里通过获取当前状态:(不愉快,但不是太麻烦。)
In [94]: plt.plot(x, y[:,1:], c=plt.plot(x, y[:,0])[0].get_c())