Is it possible to reset a Cycler object
如果
1 2 | plt.plot(x, lines1, linewidth=3) plt.plot(x, lines2, linewidth=1) |
我有一条蓝色,绿色,宽度等于3的红色线,宽度等于1的青色,紫色和黄色线。
因为
问题的对象是EDOCX1&8的性质,准确地说是EDOCX1&9的性质。
ZZU1
复制这个网站码到您的网站上以设置一个投票箱在您的网站上。
问问题意味着更好地理解问题,不是吗?
下面的陈述说明了这一点,
1 | plt.gca().set_prop_cycle(plt.rcParams['axes.prop_cycle']) |
例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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 the property cycle for any future plot commands on this
Axes .
1
2
3 set_prop_cycle(arg)
set_prop_cycle(label, itr)
set_prop_cycle(label1=itr1[, label2=itr2[, ...]])Form 1 simply sets given
Cycler object.
[...]
Parameters
arg : Cycler
Set the given Cycler.
Can also beNone to reset to the cycle defined by the current style.
[...]
我的代码可以简化
1 2 3 | plt.plot(x, y1, linewidth=3) plt.gca.set_prop_cycle(None) plt.plot(x, y2, linewidth=1) |
如果你在剧情中使用广播,那么你可以做一些类似的事情
1 2 3 4 5 | fig, ax = plt.subplots() ax.set_prop_cycle((cycler('lw', [1, 3] * cycler('color', ['b', 'g', 'r'])) ax.plot(x, lines1) ax.plot(x, lines2) |
使用当前默认周期的子集
1 2 | dflt_cy = plt.rcParams['axes.prop_cycle'] my_cy = cycler('lw', [1, 3]) * dflt_cy[:3] |
(详情请参阅文档)将提供与上述相同的信息。
我的建议是,如果您可以一次循环一个数据,可以做一些更一般的事情:
1 2 3 4 5 6 | from cycler import cycler my_cycle = (cycler('lw', [1, 3] * cycler('color', ['b', 'g', 'r', 'c', 'm', 'y', 'k'])) fig, ax = plt.subplots() for sty, data in zip(my_cycle(), my_data): ax.plot(x, data, **sty) |