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 相关文章推荐
利用Celery实现Django博客PV统计功能详解
May 08 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
python选取特定列 pandas iloc,loc,icol的使用详解(列切片及行切片)
Aug 06 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
pytorch 状态字典:state_dict使用详解
Jan 17 Python
利用Tensorflow的队列多线程读取数据方式
Feb 05 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
May 12 Python
python实现批处理文件
Jul 28 Python
Python批量获取并保存手机号归属地和运营商的示例
Oct 09 Python
python在协程中增加任务实例操作
Feb 28 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
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php实现加减法验证码代码
2014/02/14 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
PHP 使用redis简单示例分享
2015/03/05 PHP
PHP在线书签系统分享
2016/01/04 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
PHP chop()函数讲解
2019/02/11 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jQuery中用dom操作替代正则表达式
2014/12/29 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
2015/10/13 Javascript
Vue.js实战之利用vue-router实现跳转页面
2017/04/01 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
浅谈python字典多键值及重复键值的使用
2016/11/04 Python
Flask框架Flask-Principal基本用法实例分析
2018/07/23 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
护士求职信范文
2014/05/24 职场文书
项目转让协议书
2014/10/27 职场文书
小学母亲节活动总结
2015/02/10 职场文书
太行山上观后感
2015/06/05 职场文书
你会写报告?产品体验报告到底该怎么写?
2019/08/14 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android