matplotlib色彩(colors)之色彩基础知识(色彩模型,matplotlib色彩格式,matplotlib默认色彩映射)
色彩模型(RGB,RGBA,CMYK灰度)
matplotlib
中的色彩定义主要用到了RGB
、RGBA
、CMYK
、灰色
四种模型。
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,每个元素取值要求为0
到1
之间的小数,例如(0.1, 0.2 ,0.5)
。RGBA小数模式
:4元组(r, g, b, a)
,对应R、G、B、A,每个元素取值要求为0
到1
之间的小数,例如(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
。灰度小数字符串模式
:小数字符串
,表示灰度,小数取值范围为0
到1
,例如'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,对应的颜色索引为数字个位数索引,例如C101
和C1
的取值相同。注意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
。色彩取自Tableau
的tab10
调色盘。
案例:演示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默认色彩映射)相关推荐
- 【深度学习系列】基础知识、模型学习
基础知识 原创 [深度学习]--训练过程 原创 [深度学习]--BN层(batch normalization) 原创 [深度学习]--激活函数(sigmoid.tanh.relu.softmax) ...
- Matplotlib数据可视化实操--基础知识、使用PyLab模块和Pyplot模块基础绘图方式
文章目录 一.Matplotlib数据可视化是什么? 二.Matplotlib.pyplot接口汇总 1.绘图类型 2.Image函数 3.Axis函数 4.Figure函数 三.使用Pyplot模块 ...
- 造福于万千游戏建模初学者的贴图基础知识【模型烘焙贴图】
烘焙贴图,其实就是将模型与模型之间的光影关系通过图片的形式转换出来,这样就形成了一种贴图,将这种贴图控制在模型上,可以得到一种假的但很真实的效果.烘焙的贴图有:法线贴图,OCC或ao贴图,转换贴图,高 ...
- 音视频基础知识 颜色模型
RGB色彩空间: 最典型.最常用的面向硬件设备的彩色模型是三原色模型,即RGB模型.每种颜色利用8位二进制数(两位十六进制数)表示该颜色的强度,其中颜色在为0x00表示颜色强度最弱,当为0xff颜色强 ...
- 音视频开发基础知识(一)像素格式
像素格式概念 像素格式指的是图像的具体像素用什么所表示.指的是原始数据或者解码之后的数据. 常见像素格式RGB RGB色彩模式是工业界的一种颜色标准,是通过对红.绿.蓝三个颜色通道的变化以及它们相互之 ...
- 磁盘基础基础知识(MBR,GPT分区格式)
一,硬盘知识 硬盘接口类型: 并行: IDE: 133MB/s SCSI: 640MB/s 串口: SATA: 6Gbps(字节) SAS: 6Gbps USB: 480MB/s 硬盘结构示意图: 硬 ...
- 基础知识(一) 图片格式RGB 与 BGR—— python、opencv、PIL、plt
引入库 import cv2 import numpy as np from PIL import Image from matplotlib import pyplot as plt 1.pytho ...
- linux的基础知识——CS模型流程图
1.典型的CS模型流程图 2.服务端需要做的事情 (1)socket():建立服务端套接字: (2)bind():绑定IP和端口号,初始化struct sockaddr_in addr: (3)lis ...
- Java基础知识之方法的通用格式、注意事项与带参数的方法
文章目录 一.方法调用过程 二.带参数的方法 三.方法的通用格式 一.方法调用过程 1.方法定义 public static void 方法名(){//方法体 } 2.方法调用过程 图片:@黑马程序员 ...
- Cesium基础知识-创建模型,动画
viewer = new Cesium.Viewer('cesiumContainer' /* ,{ shouldAnimate : true }*/ ); //创建3d模型 function Cre ...
最新文章
- 【万级并发】电商库存扣减如何设计?不超卖!
- 10款人气暴涨的PHP开源工具
- 第十二周项目一-实现复数类中的运算符重载(3)
- oracle rac应急_ORACLE紧急情况检查应急预案
- redis开启redis_Redis聚类
- YOLO,VOC数据集标注格式解析
- Django 踩过的坑(二)
- Introduction to Latent Dirichlet Allocation
- php去掉 部分字符,输出,php如何去除某个字符
- phpstrpos不存在_深入理解PHP之strpos
- QT5.11下载与安装教程
- 基于蚁群算法的二维路径规划算法
- 软件充值功能测试点有哪些?以手机话费充值为例
- ES — — elasticsearch初探
- Weights Biases (一)
- 前端展示图片-处理图片拉伸
- 杨辉三角 C语言实现【一维数组】
- python-设计模式-1
- 斑马打印机的安装调试,生成PDF
- 最近迷上旅游。。。收藏并学习一个旅游网站
热门文章
- python shutil删除_Python标准库shutil中用于删除文件夹的方法是( )
- 电子产品--耐久性试验--可靠性试验--热测试试验--老化试验
- 关于奇亚Chia(XCH)的一些理解,共识机制 - 爆块机制
- 5分钟了解Pandas的透视表
- 学习笔记1--汽车发展史及发展趋势
- Android仿苹果电量显示
- html加载fbx模型,[Unity菜鸟] FBX模型动画提取
- 郑州轻工业大学2021-2022(1)期末模拟测试二答案
- 图数据库初探——6. Nebula Graph安装和简单使用
- 计算系数(多项式展开+快速幂)