当我一次绘制三条线时,matplotlib通过当前cycler的三个步骤进行采样,并为每个步骤提供自己的样式:
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我想要使用相同的循环状态来绘制多条线?
发布于 2016-06-25 00:45:38
这里通过获取当前状态:(不是令人愉快,但也不是太麻烦。)
In [94]: plt.plot(x, y[:,1:], c=plt.plot(x, y[:,0])[0].get_c())https://stackoverflow.com/questions/37967940
复制相似问题