例如,如果lines1
和lines2
的形状为(3,101)
plt.plot(x, lines1, linewidth=3)
plt.plot(x, lines2, linewidth=1)
我有一条宽度等于3的蓝,绿,红线,一条宽度等于1的青色,品红色和黄线。
由于
lines1
中的数据成对连接到lines2
中的数据,我想重置控制两个
Cycler
指令之间线条颜色的plot
对象,以便我得到蓝色,绿色,红色线条,宽度= 3,然后是蓝色,绿色,红色线条,宽度= 1线对之间存在视觉连接(颜色)。所讨论的
Cycler
对象是axes
的属性,恰好是prop_cycle
属性In [28]: plt.rcParams['axes.prop_cycle']
Out[28]: cycler('color', ['b', 'g', 'r', 'c', 'm', 'y', 'k'])
是否可以重置此
Cycler
对象? 最佳答案
提出问题意味着对问题有更好的理解,不是吗?
下面的语句可以解决问题,
plt.gca().set_prop_cycle(plt.rcParams['axes.prop_cycle'])
<edit>
更简单,plt.gca().set_prop_cycle(None)
,请参见下面的附录。</edit>
matplotlib
具有内部一致性...例:
In [46]: %matplotlib
In [47]: import matplotlib.pyplot as plt
In [48]: import numpy as np
In [49]: x = np.linspace(0, 7, 101)
In [50]: y1 = np.array([np.sin(x+0.2*i*x) for i in range(2)])
In [51]: y2 = 0.9*y1+0.1
In [52]: plt.plot(x, y1.T, linewidth=3)
Out[52]:
[<matplotlib.lines.Line2D at 0x7f5118b759b0>,
<matplotlib.lines.Line2D at 0x7f5118b75b38>]
In [53]: plt.gca().set_prop_cycle(plt.rcParams['axes.prop_cycle'])
In [54]: plt.plot(x, y2.T, linewidth=1)
Out[54]:
[<matplotlib.lines.Line2D at 0x7f511a3bec50>,
<matplotlib.lines.Line2D at 0x7f5118b1e898>]
In [55]:
给我
附录
最后,我阅读了
.set_prop_cycle()
的文档字符串在此
Axes
上为任何将来的绘图命令设置属性周期。set_prop_cycle(arg)
set_prop_cycle(label, itr)
set_prop_cycle(label1=itr1[, label2=itr2[, ...]])
形式1只是设置给定的
Cycler
对象。[...]
参量
arg:循环仪
设置给定的Cycler。
也可以
None
重置为当前样式定义的循环。[...]
我的代码可以更简单
plt.plot(x, y1, linewidth=3)
plt.gca.set_prop_cycle(None)
plt.plot(x, y2, linewidth=1)
关于python - 是否可以重置Cycler对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38111332/