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()