首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一次绘制多条线,但都要根据当前的循环状态

一次绘制多条线,但都要根据当前的循环状态
EN

Stack Overflow用户
提问于 2016-06-22 20:23:42
回答 1查看 60关注 0票数 2

当我一次绘制三条线时,matplotlib通过当前cycler的三个步骤进行采样,并为每个步骤提供自己的样式:

代码语言:javascript
复制
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,以获得具有相同样式的所有三个:

代码语言:javascript
复制
In [54]: plot(vstack([x]*3).ravel(), y.T.ravel())

但这将创建一条连接三者的伪线,因此它只适用于绘制标记而不是线条的绘图样式。

有没有一种令人愉快的方式来告诉matplotlib我想要使用相同的循环状态来绘制多条线?

EN

回答 1

Stack Overflow用户

发布于 2016-06-25 00:45:38

这里通过获取当前状态:(不是令人愉快,但也不是太麻烦。)

代码语言:javascript
复制
In [94]: plt.plot(x, y[:,1:], c=plt.plot(x, y[:,0])[0].get_c())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37967940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档