Python colormap库的安装和使用详情


Posted in Python onOctober 06, 2020

colormap库是Python中的一个对颜色进行处理的第三方库,常用于对RGB(red,green,blue三原色的缩写,真彩图像)颜色的转换,生成颜色图等。

pypi文档地址:https://pypi.org/project/colormap/

一、安装colormap

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple easydev
pip install colormap

colormap库依赖于easydev库,需要先安装easydev再安装colormap。

二、获取颜色的RGB元组表示和十六进制表示

# coding=utf-8
from colormap import Color


c = Color('blue')
print(c.rgb)
print(c.hex)
print(c)

运行结果:

(0.0, 0.0, 1.0)
#0000FF
Color Blue
hexa code: #0000FF
RGB code: (0.0, 0.0, 1.0)
RGB code (un-normalised): [0.0, 0.0, 255.0]

HSV code: (0.6666666666666666, 1.0, 1.0)
HSV code: (un-normalised) 240.0 100.0 100.0

HLS code: (0.6666666666666666, 0.5, 1.0)
HLS code: (un-normalised) 240.0 50.0 100.0

实例化一个Color类的颜色对象c,传入需要查看的颜色英文,打印输出颜色对象c的rgb属性即可得到对应的元组表示方法,打印输出颜色对象c的hex属性即可得到对应的十六进制表示方法。直接打印输出颜色对象c,可以同时查看该颜色的各种表示方法。

三、转换颜色的表示方法

from colormap import hex2rgb, rgb2hex


print(rgb2hex(255, 0, 0))
print(hex2rgb('#FF0000'))

运行结果:

#FF0000
(255, 0, 0)

rgb2hex(): 将RGB颜色的元组表示方法转换成十六进制表示方法。

hex2rgb(): 将RGB颜色的十六进制表示方法转换成元组表示方法。

两个方法是互逆的,RGB的元组表示是一个长度为3的元组,每个数字是0~255(2^8 - 1),三个数字的大小分别表示红、绿、蓝,如(255, 0, 0)表示红色。

RGB的十六进制表示是一个以'#'号开头的字符串,'#'后接一个长度为六的十六进制(0~F)数字,每两位表示红、绿、蓝中的一个(00~FF),如‘#FF0000'表示红色。

其他的转换函数不是很常用,有些不能正常使用(如hex2web()和web2hex()),感兴趣可以点进源码看看。

四、创建颜色图

要使用colormap创建颜色图,需要先安装numpy和matplotlib两个库。

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple

这两个库都比较大,建议都换成国内的镜像源。colormap自身没有绘图功能,所以生成图像时会去调用numpy和matplotlib。

库安装成功后,开始绘制颜色图。

from colormap import Colormap

c = Colormap()
map = c.cmap_linear('blue', 'white', 'green')
c.test_colormap(map)

运行结果:

Python colormap库的安装和使用详情

实例化一个Colormap类的对象c,用于调用对应的方法生成颜色图。

cmap_linear(): Colormap类中的方法,用于生成三种颜色的渐变图,第一种颜色至第三种颜色的渐变,中间用第二种颜色衔接。传入三种颜色,cmap_linear()方法中会用这三种颜色实例化三个Color类的对象,然后用三个对象生成颜色的渐变,并将渐变的结结果作为一个颜色图对象返回。

test_colormap(): Colormap类中的方法,用于绘制渐变图像。传入需要绘图的颜色图对象,test_colormap()方法中会导入numpy和matplotlib库,生成图像。

如果不实例化Colormap类的对象,也可以直接调用函数生成颜色图。

from colormap import cmap_builder, test_cmap


mycm = cmap_builder('green', 'black', 'blue')
test_cmap(mycm)

运行结果:

Python colormap库的安装和使用详情

cmap_builder(): colormap库中的函数,调用了Colormap类中的cmap_linear()方法。

test_cmap(): colormap库中的函数,调用了Colormap类中的test_colormap()方法。

当然,也可以生成更复杂的颜色图。

from colormap import Colormap


c = Colormap()
d = {'red':  [0, 1, 0, 0, 1, 1, 0, 1],
   'green': [0, 0, 1, 0, 1, 0, 1, 1],
   'blue': [0, 0, 0, 1, 0, 1, 1, 1]}
map = c.cmap(d, reverse=False)
c.test_colormap(map)

运行结果:

Python colormap库的安装和使用详情

cmap(colors=None, reverse=False, N=256): Colormap类中的方法,返回一个colormap的对象,给matplotlib绘图使用。上面用的cmap_linear()方法其实也是调用了cmap()方法。有3个参数。colors表示一组字典类型的RGB颜色参数。reverse表示颜色图的顺序,默认为False(从中心到边缘的顺序与colors的顺序相同),如果改为True则将颜色的顺序刚好相反。N是一个整数,默认256,保持默认即可。

到此这篇关于Python colormap库的安装和使用详情的文章就介绍到这了,更多相关Python colormap库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python中用has_key()方法查找键是否存在的教程
May 21 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
Python实现简单的HttpServer服务器示例
Sep 25 Python
Python使用Phantomjs截屏网页的方法
May 17 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
Linux 修改Python命令的方法示例
Dec 03 Python
对Python 语音识别框架详解
Dec 24 Python
Python接口测试get请求过程详解
Feb 28 Python
Python实现AI自动抠图实例解析
Mar 05 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
为什么称python为胶水语言
Jun 16 Python
python如何进行基准测试
Apr 26 Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 #Python
Python3如何使用range函数替代xrange函数
Oct 05 #Python
Python threading模块condition原理及运行流程详解
Oct 05 #Python
Python urllib库如何添加headers过程解析
Oct 05 #Python
Python3获取cookie常用三种方案
Oct 05 #Python
Python collections.deque双边队列原理详解
Oct 05 #Python
Python全局变量与global关键字常见错误解决方案
Oct 05 #Python
You might like
PHP Cookie的使用教程详解
2013/06/03 PHP
PHP 实现类似js中alert() 提示框
2015/03/18 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
简单谈谈php浮点数精确运算
2016/03/10 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
php链式操作的实现方式分析
2019/08/12 PHP
网页打开自动最大化的js代码
2012/08/22 Javascript
JavaScript对数字的判断与处理实例分析
2015/02/02 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
2016/12/15 Javascript
js实现类bootstrap模态框动画
2017/02/07 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
vuex actions传递多参数的处理方法
2018/09/18 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
开发中常用的25个JavaScript单行代码(小结)
2019/06/28 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
Python通过select实现异步IO的方法
2015/06/04 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
python如何安装下载后的模块
2020/07/03 Python
pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题
2020/12/04 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
迟到检讨书300字
2014/02/14 职场文书
预备党员的自我评价
2014/03/12 职场文书
收银员岗位职责范本
2015/04/07 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js