解析matplotlib.colors.LinearSegmentedColormap中的字典颜色分割,自定义colorbar
实现colorbar自由还是得靠自己啊:
官方文档:https://matplotlib.org/devdocs/api/_as_gen/matplotlib.colors.LinearSegmentedColormap.html?highlight=colors%20linearsegmentedcolormap%20from_list#matplotlib.colors.LinearSegmentedColormap.from_list
第一眼看到这个cdict真的挺晕的,不过仔细分析就很容易看明白啦。
首先,这里用的是RGB来调色
以’red’为例,我们来看看这个3*3的矩阵,每行的三个数字分别对应为x,y0和y1,x代表了这个颜色在colorbar上的位置,比如0就是colorbar的最小值,1是colorbar的最大值,所以x必须单调增加;然后其实真的需要看的就是每一行的y1和下一行的y0,这个函数其实就是在对应的x位置将y1-y0进行了差值(如上图所示),所以说,第一行的y0和第三行的y1其实设置为多少都不影响最终的结果,因为第一行的y0没有对应的上一行的y1,最后一行的y0没有对应下一行的y0,所以这俩数就是来占位的,明白了这一点这个矩阵应该就明白了。
下面是两个例子供大家理解:
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
tem = np.zeros((100,100))
tem[:]=np.nan
cdict = {'red': [(0.0, 0.0, 0.0),(0.5, 0.5, 0.5),(1.0, 1.0, 0.0)],'green': [(0.0, 0.0, 0.0),(0.5, 0.0, 0.0),(1.0, 0.0, 0.0)],'blue': [(0.0, 0.0, 0.0),(0.5, 0.0, 0.0),(1.0, 0.0, 0.0)]}
cmap = mpl.colors.LinearSegmentedColormap('cmap', cdict, 256)
plt.imshow(tem,cmap = cmap)
plt.colorbar()
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
tem = np.zeros((100,100))
tem[:]=np.nan
cdict = {'red': [(0.0, 0.0, 0.0),(0.5, 1.0, 0.0),(1.0, 1.0, 0.0)],'green': [(0.0, 0.0, 0.0),(0.5, 0.0, 0.0),(1.0, 0.0, 0.0)],'blue': [(0.0, 0.0, 0.0),(0.5, 0.0, 0.0),(1.0, 0.0, 0.0)]}
cmap = mpl.colors.LinearSegmentedColormap('cmap', cdict, 256)
plt.imshow(tem,cmap = cmap)
plt.colorbar(orientation = 'horizontal')
除了用cdict来定义colorbar,我们还可以使用颜色列表来定义,mpl会自动对这些颜色列表进行插值,我认为也是很好用的,比如说我认为bwr这个色条两端颜色太深了,我就可以选出来中间的一段色条重新构建colorbar:
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
tem = np.zeros((100,100))
tem[:]=np.nan
cmap0=plt.get_cmap('bwr',12)
bwr_10 = mpl.colors.LinearSegmentedColormap.from_list('bwr_10', cmap0(np.arange(1,11)), 10)
#The number of rgb quantization levels.如果想要分级的colorbar,这里的数值就和级数相同即可
#如果想要连续的这里就调成255肉眼就看不出来了
plt.imshow(tem,cmap = 'bwr')
plt.colorbar(orientation = 'horizontal')plt.imshow(tem,cmap = bwr_10)
plt.colorbar(orientation = 'horizontal')
bwr:
bwr_10:
解析matplotlib.colors.LinearSegmentedColormap中的字典颜色分割,自定义colorbar相关推荐
- EasyExcel 单元格背景颜色、字体颜色使用2种设置颜色方法(IndexedColors中定义的颜色,自定义RGB颜色)实现
1 Maven配置 <!--hutool工具包--><dependency><groupId>cn.hutool</groupId><artifa ...
- python colormap_Python colors.LinearSegmentedColormap方法代码示例
本文整理汇总了Python中matplotlib.colors.LinearSegmentedColormap方法的典型用法代码示例.如果您正苦于以下问题:Python colors.LinearSe ...
- python自定义函数画图_python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条...
自定义colorbar(draw colorbar without any mapple/plot) 参考:Customized Colorbars Tutorial api example code ...
- python中颜色_python - matplotlib中的命名颜色
Matplotlib使用colors.py模块中的字典. 要打印名称,请使用: # python2: import matplotlib for name, hex in matplotlib.col ...
- python matplotlib自定义colorbar颜色条-以及matplotlib中的内置色条
文章目录 自定义colorbar(draw colorbar without any mapple/plot) contourf函数 为所有子图添加一个色带 推荐色带与自定义色带 PS: 传送门--自 ...
- python中color的用法顺序_Python Matplotlib.colors.Normalize用法及代码示例
Matplotlib是Python中令人惊叹的可视化库,用于数组的二维图. Matplotlib是一个基于NumPy数组的多平台数据可视化库,旨在与更广泛的SciPy堆栈配合使用. matplotli ...
- python中等高线填充颜色_Python matplotlib等高线图对数颜色
我对使用对数颜色缩放的等高线图有问题.我想手动指定级别.然而,Matplotlib以一种奇怪的方式绘制颜色条--标签放置得不好,只有一种颜色出现.这个想法是基于 http://adversus.110 ...
- python中如何定义颜色_Python图像处理之颜色的定义与使用分析
本文实例讲述了Python图像处理之颜色的定义与使用.分享给大家供大家参考,具体如下: python中的颜色相关的定义在matplotlib模块中,为方便使用,这里给大家展示一下在这个模块中都定义了哪 ...
- python matplotlib.pyplot.scatter() 中的cmap参数是什么意思?
根据官方文档, cmap就是指matplotlib.colors.Colormap: 那么matplotlib.colors.Colormap又是什么? colormap又叫colorbar是一个包含 ...
最新文章
- [转] 前端数据驱动的价值
- Linux下安装oracle提示INS-20802 Oracle Net Configuration Assistant
- 我的python之路(四):列表
- mysql冷备增量备份,MySQL备份与恢复之真实环境使用冷备(2)
- 【208天】黑马程序员27天视频学习笔记【Day21-中】
- matlab 点云特征_基于点云的3D障碍物检测
- Swift傻傻分不清楚系列(九)闭包
- 2017西安交大ACM小学期 刷墙[折半枚举+异或]
- linux mod_ssl源码安装,linux下不重新编译apache添加安装mod_ssl模块和错误的处理方法...
- 字符串去空格符(c++)
- java stream read_Java ObjectInputStream read()用法及代码示例
- [SQL Server 2014] SQL Server 2014新特性探秘
- CCF201709-2 公共钥匙盒(100分)【模拟+优先队列】
- java数字代码_Java基础08—数字类处理(示例代码)
- SSD固态硬盘4K对齐一键分区
- 阿里图标库《保留彩色》
- WIN10更新后遗症+解决方案2——Solidworks注册机闪退
- java 注解 entity_详解Java中的注解
- 调出win10的关机的休眠(hibernate)选项
- oracle数据库中TDS,某高校开发了一个学生信息管理系统TDS,里面使用了Oracle数据库。则TDS被称为...