Python matplotlib的使用并自定义colormap的方法


Posted in Python onDecember 13, 2018

0.前言

添加colormap的对象是灰度图,可以变成热量图,从而更加明显的发现一些规律,适用于一些雷达图像等

from PIL import Image
# 将彩色图片转换成黑白图片
im=Image.open("./pic.jpg").convert('L')
# 保存图片
im.save("image.jpg")

1.从灰色图片中读取数据,转换成colormap图

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import matplotlib as mpl
from PIL import Image
import numpy as np

# 自定义colormap
def colormap():
  return mpl.colors.LinearSegmentedColormap.from_list('cmap', ['#FFFFFF', '#98F5FF', '#00FF00', '#FFFF00','#FF0000', '#8B0000'], 256)

# 读取灰度图
data=mpimg.imread('./gray.jpg')
# 如果需要固定colorbar的范围,可以设置参数vmin,vmax,具体参考
                 #http://matplotlib.org/api/image_api.html

# 设定每个图的colormap和colorbar所表示范围是一样的,即归一化 
plt.imsave('colormap.jpg',data, cmap=colormap())

这里没有显示出来colorbar的数值分布,得到的图像是等大的

2.从txt文本中读取二维数据,转换成自定义colormap图

#python 3
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.colors as colors


# load data
def loaddata(i): # 文件编号
  path = './input/data/trainPingliu/trainPingliu%d.txt' % i
  data = np.loadtxt(path)
  return data


# 生成图片格式自定义
def colormap():
  # 白青绿黄红
  cdict = ['#FFFFFF', '#9ff113', '#5fbb44', '#f5f329', '#e50b32']
  # 按照上面定义的colordict,将数据分成对应的部分,indexed:代表顺序
  return colors.ListedColormap(cdict, 'indexed')


# for i in range(1, 10000):
# 加载数据
data = loaddata(1)
fig = plt.figure()
# 加载图片设置
my_cmap = colormap()

# 第一个子图,按照默认配置
ax = fig.add_subplot(221)
ax.imshow(data)

# 第二个子图,使用api自带的colormap
ax = fig.add_subplot(222)
cmap = mpl.cm.bwr # 蓝,白,红
ax.imshow(data, cmap=cmap)

# 第三个子图增加一个colorbar
ax = fig.add_subplot(223)
cmap = mpl.cm.winter # 冬季风格
im = ax.imshow(data, cmap=my_cmap)
plt.colorbar(im) # 增加colorbar

# 第四个子图可以调整colorbar
ax = fig.add_subplot(224)
cmap = mpl.cm.rainbow
# 这里设置colormap的固定值
norm = mpl.colors.Normalize(vmin=-1, vmax=1)
im=ax.imshow(data,cmap=cmap)
plt.colorbar(im,cmap=cmap, norm=norm,ticks=[-1,0,1])


# 显示
plt.show()

以上这篇Python matplotlib的使用并自定义colormap的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
Apr 19 Python
Python编程深度学习绘图库之matplotlib
Dec 28 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
May 09 Python
对django后台admin下拉框进行过滤的实例
Jul 26 Python
python scatter函数用法实例详解
Feb 11 Python
Python进程Multiprocessing模块原理解析
Feb 28 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
keras中模型训练class_weight,sample_weight区别说明
May 23 Python
python中怎么表示空值
Jun 19 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
python实现给scatter设置颜色渐变条colorbar的方法
Dec 13 #Python
matplotlib实现热成像图colorbar和极坐标图的方法
Dec 13 #Python
对matplotlib改变colorbar位置和方向的方法详解
Dec 13 #Python
python用plt画图时,cmp设置方法
Dec 13 #Python
python reverse反转部分数组的实例
Dec 13 #Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 #Python
python将list转为matrix的方法
Dec 12 #Python
You might like
部署PHP时的4个配置修改说明
2015/10/19 PHP
PHP时间类完整实例(非常实用)
2015/12/25 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
jquery $.getJSON()跨域请求
2011/12/21 Javascript
Javascript Objects详解
2014/09/04 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
关于layui toolbar和template的结合使用方法
2019/09/19 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
python爬虫框架talonspider简单介绍
2017/06/09 Python
完美解决在oj中Python的循环输入问题
2018/06/25 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
python scrapy重复执行实现代码详解
2019/12/28 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
Python 读取WAV音频文件 画频谱的实例
2020/03/14 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
优秀员工个人的自我评价
2013/11/29 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
限期整改通知书
2015/04/22 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript