You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在cycler中使用颜色名称或RGB代码定义循环颜色?

解决cycler使用颜色名称/RGB重复指定次数的问题

你原来的写法只适用于单字符颜色代码,因为'k'*12会生成由12个'k'字符组成的字符串,cycle迭代时会逐个取出每个字符作为独立颜色值。但换成多字符颜色名称时,'gray1'*12会生成'gray1gray1...'这样的长字符串,cycle会逐个迭代单个字母,这显然不是你想要的效果。

正确的做法是用列表存储重复后的颜色项,再传给cycler,具体实现如下:

1. 使用颜色名称

直接将每个颜色名称重复12次后合并成列表,再传入cycler:

from cycler import cycler

color_list = ['gray1'] * 12 + ['gold4'] * 12 + ['forestgreen'] * 12 + ['firebrick'] * 12 + ['dodgerblue4'] * 12
colors = cycler('color', color_list)

如果需要更清晰的代码结构,可以用extend方法逐个添加:

from cycler import cycler

color_list = []
color_list.extend(['gray1'] * 12)
color_list.extend(['gold4'] * 12)
color_list.extend(['forestgreen'] * 12)
color_list.extend(['firebrick'] * 12)
color_list.extend(['dodgerblue4'] * 12)
colors = cycler('color', color_list)

2. 使用RGB颜色代码

RGB颜色可以用0-1范围内的元组表示,同样按重复12次的逻辑构建列表:

from cycler import cycler

# 示例RGB颜色,分别对应深灰、暗金、深绿、砖红、深蓝
rgb_color_list = [(0.1, 0.1, 0.1)] * 12 + [(0.6, 0.4, 0.0)] * 12 + [(0.0, 0.4, 0.0)] * 12 + [(0.6, 0.2, 0.2)] * 12 + [(0.0, 0.3, 0.6)] * 12
colors = cycler('color', rgb_color_list)

这样cycle就会按顺序依次取出每个完整的颜色名称或RGB元组,实现每种颜色重复12次的需求。

内容的提问来源于stack exchange,提问作者Martin7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:45:07