色彩模型(RGB,RGBA,CMYK灰度)

matplotlib中的色彩定义主要用到了RGBRGBACMYK灰色四种模型。

RGB模型

RGB是最常见的一种色彩模型,它使用红、绿、蓝三原色的亮度来定量表示颜色,这种模型也称为加色混色模型,是以RGB三色光互相叠加来实现混色的方法,因而适合于显示器等发光体的显示。
如果是三原色光中的两种色光进行等比例混合的话,那么,得到的结果是黄、青、紫三色光。
常见的案例如:
红+绿=黄
红+蓝=紫(亮紫)
绿+蓝=青
红+绿+蓝=白
三种基色光全无=黑
这是色光混合,称为加色混合法。
因此RGB模型的颜色可以用R、G、B三个分量来表示。
F(物体颜色)=R(红色的百分比)+G(绿色的百分比)+B(蓝色的百分比)

RGBA模型

RGBA模型是在RGB模型的基础上加上了Alpha通道,Catmull和Smith在1971至1972年间提出了这个不可或缺的alpha数值,使得alpha渲染和alpha合成变得可能。提出者以alpha来命名是源于经典的线性插值方程αA + (1-α)B所用的就是这个希腊字母。
alpha通道一般用作不透明度参数。如果一个像素的alpha通道数值为0%,那它就是完全透明的(也就是看不见的),而数值为100%则意味着一个完全不透明的像素(传统的数字图像)。在0%和100%之间的值则使得像素可以透过背景显示出来,就像透过玻璃(半透明性),这种效果是简单的二元透明性(透明或不透明)做不到的。它使数码合成变得容易。

CMYK模型

CMYK模型,也被称为印刷四色模型,它彩色印刷时采用的一种套色模型,利用色料的三原色混色原理,加上黑色油墨,共计四种颜色混合叠加,形成所谓“全彩印刷”。四种标准颜色是:C:Cyan = 青色,又称为天蓝色或是湛蓝,M:Magenta = 品红色,又称为洋红色;Y:Yellow = 黄色;K:blacK=黑色,此处缩写使用最后一个字母K而非开头的B,是为了避免与Blue混淆。
CMYK模式是减色模式,相对应的RGB模式是加色模式。CMYK模式是一种用于印刷品依靠反光的色彩模模型,RGB模式是一种屏幕显示发光的色彩模型。

灰色模型

灰度模型使用黑色调表示物体,即用黑色为基准色,不同的饱和度的黑色来显示图像。 每个灰度对象都具有从 0%(白色)到100%(黑色)的亮度值。 使用黑白或灰度扫描仪生成的图像通常以灰度显示。

matplotlib色彩格式

  • RGB小数模式3元组(r, g, b),对应R、G、B,每个元素取值要求为01之间的小数,例如(0.1, 0.2 ,0.5)
  • RGBA小数模式4元组(r, g, b, a),对应R、G、B、A,每个元素取值要求为01之间的小数,例如(0.1, 0.2 ,0.5 ,0.3)
  • RGB16进制字符串模式长度为7的字符串#rrggbb,以#开头后面6位16进数字,每2位一组,对应R、G、B,例如#FFFFFF
  • RGBA16进制字符串模式长度为9的字符串#rrggbbaa,以#开头后面8位16进数字,每2位一组,对应R、G、B、A,例如#FFFFFFFF
  • 16进制字符串简写模式RGB16进制字符串模式RGBA16进制字符串模式的简写模式,每组数字如果2个数字相同可简写为1个,例如#FFFFFF可简写为#FFF
  • 灰度小数字符串模式小数字符串,表示灰度,小数取值范围为01,例如'0.5'
  • 基础颜色字符长度为1的字符串,取值范围为{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'}对应RGB模型、CMYK模型的基础色和白色。
  • X11/CSS4 ("html")模式的色彩名称字符串,比如"blue"
  • xkcd色彩名称以xkcd:开头的字符串,对应xkcd社区定义的色彩映射,例如'xkcd:sky blue'
  • 默认色彩循环,Cn彩色定义由字符串C和1个非负整数构成,数字为默认色彩循环rcParams["axes.prop_cycle"]的索引,
    rcParams["axes.prop_cycle"] (default: cycler('color', ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf']))数字超过9,对应的颜色索引为数字个位数索引,例如C101C1的取值相同。注意C必须为大写。 matplotlib大部分绘图函数、方法的颜色属性指向默认色彩循环,这也是为什么默认图表的颜色经常为蓝色的原因。
  • Tableau色彩定义以tab:开头的字符串,取值范围为:{'tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan'},对应默认的色彩循环,例如'tab:blue'等于C0。色彩取自Tableautab10调色盘。

案例:演示11种色彩格式

import matplotlib.pyplot as pltcolor_list = [(0.1, 0.1, 0.1), (0.1, 0.1, 0.1, 0.5), '#FFFF00','#FFFF00FF', '#F0F', '0.5', 'r', 'blue', 'C0', 'xkcd:blue', 'tab:blue']
for i, j in enumerate(color_list):plt.plot([i, i], c=j)plt.annotate(repr(j), (0, i+0.1))
plt.show()

matplotlib默认色彩映射(colormap)

从上面的色彩格式可知,色彩的表现形式主要有两种:

  • 数字(包括小数和数字字符串):16进制字符串模式可以快捷的转换为小数元组。
  • 色彩名称字符串:色彩名称和色彩数字之间存在映射关系,我们称之为色彩映射(colormap)

matplotlib._color_data模块定义了4种色彩映射,根据颜色映射可知,最终各种色彩名称字符串都会统一转换为数字表示,因此各种不同色彩取值才可能统一

官方案例https://matplotlib.org/gallery/color/named_colors.html演示了4中默认色彩映射对应的颜色。

默认的4种色彩映射如下:

  • 基本色彩:
BASE_COLORS = {'b': (0, 0, 1),        # blue'g': (0, 0.5, 0),      # green'r': (1, 0, 0),        # red'c': (0, 0.75, 0.75),  # cyan'm': (0.75, 0, 0.75),  # magenta'y': (0.75, 0.75, 0),  # yellow'k': (0, 0, 0),        # black'w': (1, 1, 1),        # white
}
  • Tableau色彩:
TABLEAU_COLORS = (('blue', '#1f77b4'),('orange', '#ff7f0e'),('green', '#2ca02c'),('red', '#d62728'),('purple', '#9467bd'),('brown', '#8c564b'),('pink', '#e377c2'),('gray', '#7f7f7f'),('olive', '#bcbd22'),('cyan', '#17becf'),
)# Normalize name to "tab:<name>" to avoid name collisions.
TABLEAU_COLORS = OrderedDict(('tab:' + name, value) for name, value in TABLEAU_COLORS)
  • XKCD色彩:
XKCD_COLORS = {'cloudy blue': '#acc2d9','dark pastel green': '#56ae57','dust': '#b2996e','electric lime': '#a8ff04','fresh green': '#69d84f','light eggplant': '#894585',......}
# Normalize name to "xkcd:<name>" to avoid name collisions.
XKCD_COLORS = {'xkcd:' + name: value for name, value in XKCD_COLORS.items()}
  • CSS色彩:
CSS4_COLORS = {'aliceblue':            '#F0F8FF','antiquewhite':         '#FAEBD7','aqua':                 '#00FFFF','aquamarine':           '#7FFFD4','azure':                '#F0FFFF',......}

matplotlib色彩(colors)之色彩基础知识(色彩模型,matplotlib色彩格式,matplotlib默认色彩映射)相关推荐

  1. 【深度学习系列】基础知识、模型学习

    基础知识 原创 [深度学习]--训练过程 原创 [深度学习]--BN层(batch normalization) 原创 [深度学习]--激活函数(sigmoid.tanh.relu.softmax) ...

  2. Matplotlib数据可视化实操--基础知识、使用PyLab模块和Pyplot模块基础绘图方式

    文章目录 一.Matplotlib数据可视化是什么? 二.Matplotlib.pyplot接口汇总 1.绘图类型 2.Image函数 3.Axis函数 4.Figure函数 三.使用Pyplot模块 ...

  3. 造福于万千游戏建模初学者的贴图基础知识【模型烘焙贴图】

    烘焙贴图,其实就是将模型与模型之间的光影关系通过图片的形式转换出来,这样就形成了一种贴图,将这种贴图控制在模型上,可以得到一种假的但很真实的效果.烘焙的贴图有:法线贴图,OCC或ao贴图,转换贴图,高 ...

  4. 音视频基础知识 颜色模型

    RGB色彩空间: 最典型.最常用的面向硬件设备的彩色模型是三原色模型,即RGB模型.每种颜色利用8位二进制数(两位十六进制数)表示该颜色的强度,其中颜色在为0x00表示颜色强度最弱,当为0xff颜色强 ...

  5. 音视频开发基础知识(一)像素格式

    像素格式概念 像素格式指的是图像的具体像素用什么所表示.指的是原始数据或者解码之后的数据. 常见像素格式RGB RGB色彩模式是工业界的一种颜色标准,是通过对红.绿.蓝三个颜色通道的变化以及它们相互之 ...

  6. 磁盘基础基础知识(MBR,GPT分区格式)

    一,硬盘知识 硬盘接口类型: 并行: IDE: 133MB/s SCSI: 640MB/s 串口: SATA: 6Gbps(字节) SAS: 6Gbps USB: 480MB/s 硬盘结构示意图: 硬 ...

  7. 基础知识(一) 图片格式RGB 与 BGR—— python、opencv、PIL、plt

    引入库 import cv2 import numpy as np from PIL import Image from matplotlib import pyplot as plt 1.pytho ...

  8. linux的基础知识——CS模型流程图

    1.典型的CS模型流程图 2.服务端需要做的事情 (1)socket():建立服务端套接字: (2)bind():绑定IP和端口号,初始化struct sockaddr_in addr: (3)lis ...

  9. Java基础知识之方法的通用格式、注意事项与带参数的方法

    文章目录 一.方法调用过程 二.带参数的方法 三.方法的通用格式 一.方法调用过程 1.方法定义 public static void 方法名(){//方法体 } 2.方法调用过程 图片:@黑马程序员 ...

  10. Cesium基础知识-创建模型,动画

    viewer = new Cesium.Viewer('cesiumContainer' /* ,{ shouldAnimate : true }*/ ); //创建3d模型 function Cre ...

最新文章

  1. 【万级并发】电商库存扣减如何设计?不超卖!
  2. 10款人气暴涨的PHP开源工具
  3. 第十二周项目一-实现复数类中的运算符重载(3)
  4. oracle rac应急_ORACLE紧急情况检查应急预案
  5. redis开启redis_Redis聚类
  6. YOLO,VOC数据集标注格式解析
  7. Django 踩过的坑(二)
  8. Introduction to Latent Dirichlet Allocation
  9. php去掉 部分字符,输出,php如何去除某个字符
  10. phpstrpos不存在_深入理解PHP之strpos
  11. QT5.11下载与安装教程
  12. 基于蚁群算法的二维路径规划算法
  13. 软件充值功能测试点有哪些?以手机话费充值为例
  14. ES — — elasticsearch初探
  15. Weights Biases (一)
  16. 前端展示图片-处理图片拉伸
  17. 杨辉三角 C语言实现【一维数组】
  18. python-设计模式-1
  19. 斑马打印机的安装调试,生成PDF
  20. 最近迷上旅游。。。收藏并学习一个旅游网站

热门文章

  1. python shutil删除_Python标准库shutil中用于删除文件夹的方法是( )
  2. 电子产品--耐久性试验--可靠性试验--热测试试验--老化试验
  3. 关于奇亚Chia(XCH)的一些理解,共识机制 - 爆块机制
  4. 5分钟了解Pandas的透视表
  5. 学习笔记1--汽车发展史及发展趋势
  6. Android仿苹果电量显示
  7. html加载fbx模型,[Unity菜鸟] FBX模型动画提取
  8. 郑州轻工业大学2021-2022(1)期末模拟测试二答案
  9. 图数据库初探——6. Nebula Graph安装和简单使用
  10. 计算系数(多项式展开+快速幂)