好吧,我使用itertools.cycle().next()Python 2.6.6的方法,但现在我更新到3.2我注意到itertools.cycle()对象没有方法next().
我用它在类的spin()方法中循环一个字符串Spinner.因此,如果我们循环元组('|', '/', '-', '\\', '|', '/', '-'),它会打印:|,/,-,\,|,/,-,|,/等...
我搜索了Python 3.0,3.1和3.2的发行说明,并没有发现任何变化.什么时候改变了?是否有任何简单的替代方案可以实现与以前相同的功能?
先感谢您.
我正在绘制直方图,我有三个数据集,我想要一起绘制,每个数据集都有不同的颜色和线型(虚线,点线等).我也给了一些透明度,以便看到重叠的条形图.
关键是我希望每个条的边缘不会像内部部分那样变得透明.这是一个例子:
import matplotlib.pyplot as plt
import numpy as np
x = np.random.random(20)
y =np.random.random(20)
z= np.random.random(20)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(x, bins=np.arange(0, 1, 0.1), ls='dashed', alpha = 0.5, lw=3, color= 'b')
ax.hist(y, bins=np.arange(0, 1, 0.1), ls='dotted', alpha = 0.5, lw=3, color= 'r')
ax.hist(z, bins=np.arange(0, 1, 0.1), alpha = 0.5, lw=3, color= 'k')
ax.set_xlim(-0.5, 1.5)
ax.set_ylim(0, 7)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我知道你可以使用c = cycle(['a', 'b', 'c'])在元素之间循环c.next(),但是有没有得到迭代器的当前元素?
例如,如果c.next()返回'c',则表示迭代器在'b'之前.有没有办法可以'b'不使用next()?
我有一个配色方案来自
plt.style.use('ggplot')
Run Code Online (Sandbox Code Playgroud)
所以我不想手动选择颜色,或者从颜色循环器中选择它们。但是,当我有一个辅助轴时:
fig, ax = plt.subplots()
ax2 = ax.twinx()
ax.plot(np.array([1, 2]))
ax2.plot(np.array([3, 4]))
Run Code Online (Sandbox Code Playgroud)
它将以相同的颜色绘制两条线。我如何判断ax2该图上已经n=1绘制了线条,以便它以第n+1th 种颜色开头?
我通过调整图的颜色顺序 rcParams['axes.color_cycle'] = [some nice and carefully chosen colours]
但是,当我将twinx用于第二个轴时,将重置颜色顺序:
from matplotlib import pyplot as plt
from matplotlib import rcParams
rcParams['axes.color_cycle'] = ['r','g','k']
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax1 = plt.twinx(ax)
ax.plot([1,2,3],[4,5,6])
ax.plot([1,2,3],[7,6,4])
ax1.plot([1,2,3],[5,3,1])
Run Code Online (Sandbox Code Playgroud)
有办法避免这种情况吗?画在上面的线ax1应该是黑色的。
python ×4
matplotlib ×3
alpha ×1
cycle ×1
histogram ×1
next ×1
plot ×1
python-2.7 ×1
python-3.x ×1