matplotlib获取颜色循环

本文介绍了matplotlib中RGBA颜色空间的概念,详细解释了RGBA各分量的含义,包括红色、绿色、蓝色和透明度(Alpha)的取值范围,并通过实例展示了不同参数组合所代表的颜色效果。此外,还提到了如何在matplotlib中获取颜色循环。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RGBA

  • 代表Red(红色)Green(绿色)Blue(蓝色)和Alpha的色彩空间。
  • (red,green,blue,alpha)
    • 前三个值(红绿蓝):范围: 0-255之间的整数或者0%~100%之间的百分数,描述了红蓝绿三原色在预期色彩中的量。
    • 第四个值,alpha值:范围[0.0,1.0],制订了色彩的透明度/不透明度。比如0.5为半透明。
  • 举例
    • rgba(255.255,255,0)表示完全透明的白色,
    • rgba(0,0,0,1)表示完全不透明的黑色。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm

value=8
viridis = cm.get_cmap('viridis', value)

print(viridis(0.56))
# (0.122312, 0.633153, 0.530398, 1.0)
print('viridis.colors\n', viridis.colors)

运行结果如下:
在这里插入图片描述

获取颜色循环

# import modules
import matplotlib.pyplot as plt
import matplotlib.cm as mplcm
import matplotlib.colors as colors
import numpy as np
plt.rcParams['font.sans-serif']=['SimHei'] # 设置正常显示中文
plt.rcParams['axes.unicode_minus']=False # 设置正常显示负号

# generate color list
def get_color_cycle():
    color_seq_summary=[]
    for c_type in ['tab20','tab20b','tab20c','Set3','Set2','Set2','Set1']:
        c_m=plt.get_cmap(c_type)
        c_norm=colors.NoNorm(vmin=0,vmax=19)
        scalar_map=mplcm.ScalarMappable(norm=c_norm,cmap=c_m)
        color_seq=[scalar_map.to_rgba(i) for i in range(20)]
        if c_type == 'tab20':
            color_seq=color_seq[::2]+color_seq[1::2]
        color_seq_summary.extend(color_seq)
    return color_seq_summary
    
# generate color generator
color_seq_summary=get_color_cycle()
color_cycle=iter(color_seq_summary)

# plot ten color traces
arr=np.random.rand(1000)
fig,axes=plt.subplots(1,1,figsize=(15,10))
for i in range(10):
    new_color=next(color_cycle) # get a new color
    axes.plot(range(1000),arr+i,color=new_color,label=new_color)
plt.legend()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值