python换循环颜色_python - 获取matplotlib颜色循环

当然,这样做会。

#rainbow

import matplotlib.pyplot as plt

import numpy as np

x = np.linspace(0,2*np.pi)

ax= plt.subplot(1,1,1)

ax.plot(np.sin(x))

ax.plot(np.cos(x))

rainbow = ax._get_lines.color_cycle

print rainbow

for i, color in enumerate(rainbow):

if i<10:

print color,

得到:

r c m y k b g r c m

这是matplotlib使用itertools.cycle的itertools函数

编辑:感谢您的评论,似乎无法复制迭代器。 一个想法是转储一个完整的周期并跟踪你正在使用的值,让我重新开始。

Edit2:好的,这将为您提供下一个颜色,并创建一个新的迭代器,其行为就像下一个未被调用一样。 这不保留着色的顺序,只是下一个颜色值,我留给你。

这给出了以下输出,注意图中的陡度对应于索引,例如,第一个g是最底部的图,依此类推。

#rainbow

import matplotlib.pyplot as plt

import numpy as np

import collections

import itertools

x = np.linspace(0,2*np.pi)

ax= plt.subplot(1,1,1)

def create_rainbow():

rainbow = [ax._get_lines.color_cycle.next()]

while True:

nextval = ax._get_lines.color_cycle.next()

if nextval not in rainbow:

rainbow.append(nextval)

else:

return rainbow

def next_color(axis_handle=ax):

rainbow = create_rainbow()

double_rainbow = collections.deque(rainbow)

nextval = ax._get_lines.color_cycle.next()

double_rainbow.rotate(-1)

return nextval, itertools.cycle(double_rainbow)

for i in range(1,10):

nextval, ax._get_lines.color_cycle = next_color(ax)

print "Next color is: ", nextval

ax.plot(i*(x))

plt.savefig("SO_rotate_color.png")

plt.show()

安慰

Next color is: g

Next color is: c

Next color is: y

Next color is: b

Next color is: r

Next color is: m

Next color is: k

Next color is: g

Next color is: c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值