matplotlib 合并cmap,创建cmap,创建listedcolormap
python中matplotlib内置的离散cmap中颜色有限,最多的tab20也只有20个颜色,为了获得包含更多颜色的cmap,最简单的方法就是合并内置cmap,创建新的。
这里是考虑的离散cmap,如果是连续cmap,就不存在颜色个数不够用的情况了。
零、需求
如下图所示,内置的qualitative系列包含下列离散cmap,最多只有20种颜色。
鉴于tab20b和tab20c的颜色各不相同,因此考虑合并它们得到一个新的cmap,可以直接用于更多颜色需求的图像绘制。
一、cmap相关操作
1. 函数get_cmap()通过指定str,获取相应cmap:
2. cmap实例其实类似于一个字典,以float形式输入[0, 1]之间的数字,能够得到对应的颜色rgba值(输入数字如果大于1,cmap会自动对其进行正则化)。
由于离散cmap中颜色个数有限,实际上一定范围内的float值对应的颜色是一样的。
3. 使用cmap.colors可以获得该cmap中包含的所有颜色的rgb值。
可以看出cmap中所有colors是以tuple的形式保存的。
4. cmap是ListedColormap实例,因此我们创建新的cmap也要借助该类型。
ListedColormap类可以通过接收一个colors的列表来创建cmap实例,因此考虑将合并后的总colors传给ListedColormap类,以此实现新cmap的创建。
上述代码可以看出,新创建的cmap拥有和内置cmap一样的性质和属性。
二、代码实例
下面给出完整代码,运行下面代码,新创建的new_cmap能够和内置cmap一样直接在scatter等画图函数中直接使用。
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import numpy as npcmap1 = plt.get_cmap('tab20b')
cmap2 = plt.get_cmap('tab20c')
new_cmap = ListedColormap(cmap1.colors+cmap2.colors)x = np.random.random([40, 2])
cluster_labels = np.arange(40)
plt.figure(figsize=[12, 8])
plt.scatter(x[:, 0], x[:, 1], s=500, c=cluster_labels, cmap=new_cmap, marker='o', linewidths=2)
plt.colorbar()
plt.show()
上述代码运行结果如下,可以看出,40个数据点颜色各不相同,实现了对两个内置cmap的合并。
三、总结
如果需要更多颜色,可以自行合并想要的内置cmap,创建新的可用cmap。
matplotlib 合并cmap,创建cmap,创建listedcolormap相关推荐
- oracle创建表空间.创建用户.创建表
oracle创建表空间.创建用户.创建表 转:http://blog.csdn.net/zhoubl668/archive/2009/02/02/3858576.aspx 在SQL*Plus中:(1) ...
- 【设计模式】代理模式 ( 动态代理使用流程 | 创建目标对象 | 创建被代理对象 | 创建调用处理程序 | 动态创建代理对象 | 动态代理调用 )
文章目录 前言 一.静态代理的弊端 二.动态代理的优势 三.动态代理使用流程 1.目标对象接口 2.被代理对象 3.调用处理程序 4.客户端 四.动态生成 代理对象 类 的 字节码 文件数据 前言 代 ...
- 【Flutter】Animation 动画 ( AnimatedBuilder 动画使用流程 | 创建动画控制器 | 创建动画 | 创建动画作用的组件 | 关联动画与组件 | 动画执行 )
文章目录 ◯.AnimatedBuilder 引入 一.创建动画控制器 二.创建动画 三.创建动画作用的组件 四.创建 AnimatedBuilder 关联动画与组件 五.动画运行 六.完整代码示例 ...
- unity碰撞检测函数,碰撞信息获取,触发检测,使用粒子系统创建火焰,创建动画(火光闪烁),导航系统,通过导航系统控制人物移动,控制摄像机的跟随,控制角色动画播放
碰撞检测函数 private void OnCollisionEnter(Collision collision){print("OnCollisonEnter");}privat ...
- CREO:CREO软件之工程图【表】之一明细表、表格创建、创建BOM球标、自动生成零件报表的简介及其使用方法(图文教程)之详细攻略
CREO:CREO软件之工程图[表]之一明细表.表格创建.创建BOM球标.自动生成零件报表的简介及其使用方法(图文教程)之详细攻略 目录
- 创建镜像 - 创建与定制 mysql 镜像
创建镜像 - 创建与定制 mysql 镜像 本文通过制作与定制 mysql 镜像为案例,一方面说明创建镜像简单,另一方面解释 docker image 的内容,直观描述 docker build 命令 ...
- 一键DG脚本(静默安装创建实例创建DG)
本人原创,请勿转载:http://blog.csdn.net/ashic/article/details/46923761 ##首先,这只是为了练习shell而写 大神们不屑请别看 不懂shell的可 ...
- 数据库——创建数据库+创建表与主键
文章目录 一.创建数据库 1.创建默认数据库 2.创建指定参数位置数据库 3.添加NDF数据文件 二.创建表 三.创建主键 1.创建主键 2.对已创建的表进行主.外键设置 一.创建数据库 1.创建默认 ...
- sql server基础语法 创建数据库 创建表
sql server基础语法 创建数据库 创建表 1.创建数据库 2.表的创建 3.在现有表中添加标识列 4.创建外键 5.添加外键 6.约束 7.创建局部临时表 8.创建全局临时表 9.创建具有ch ...
最新文章
- 中国10大最震撼的无人工厂,你吃的用的都是这么来的!
- 将时间戳转为年月日时分秒格式
- ext js gridpanel绑定到动态生成的store
- Mongodb 集群加keyFile认证,Mongodb用户管理(转:http://blog.csdn.net/wlzjsj/article/details/61421230)
- 二、OC的构造方法和descriprtion方法
- 工作章 - 小程序web-view分享 流泪爬坑记
- 还在随缘炼丹?一文带你详尽了解机器学习模型可解释性的奥秘
- 基于 frida 实现的逆向工具包 hooker
- Flutter TextButton 详细使用配置、Flutter ButtonStyle样式概述实践
- america/los_angeles 时区 java_在Java ME中将“America / Los Angeles”时区转换为“PST”或“PDT”...
- 【IE】IE对line-height 失效的的解决方案
- 过来人给Java初学者的建议!
- iweboffice之word——自定义菜单的使用
- (己解决)黑苹果驱动英特尔核显疑问记录
- 报错:Container killed by YARN for exceeding memory limits
- 微信公众平台——用户管理
- 免费ofd在线转PDF
- 【职场】大公司想招程序员,一般都在什么网站上进行招聘呢?
- linux zip和gzip的区别
- golang 大数据平台_Golang在Momenta大数据平台当中的应用
热门文章
- 时间管理-系统管理员
- MySQL 数据库 source 命令详解及实例
- 记lrd的高二上学期第五次调研考试
- 撰写SCI论文好用的免费工具(下) - 易智编译EaseEditing
- wps指定路径不存在怎么办_wps指定路径不存在怎么办_十万人都不知道键盘上 F1~F12 的作用,你肯定想不到......
- 七日年化收益率怎么计算
- REST-Assured,接口自动化的 “瑞士军刀“- 断言篇
- C语言:统计句子中元音字母的个数
- 页面找不到了无法解析服务器,win10下搜狗浏览器无法解析服务器的dns地址如何解决...
- gltf骨骼动画解析笔记