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 相关文章推荐
python 布尔操作实现代码
Mar 23 Python
python中实现定制类的特殊方法总结
Sep 28 Python
Python获取运行目录与当前脚本目录的方法
Jun 01 Python
Python自动登录126邮箱的方法
Jul 10 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 Python
使用Py2Exe for Python3创建自己的exe程序示例
Oct 31 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
python统计mysql数据量变化并调用接口告警的示例代码
Sep 21 Python
Python3读写ini配置文件的示例
Nov 06 Python
Django视图类型总结
Feb 17 Python
Python如何导出导入所有依赖包详解
Jun 08 Python
Python常遇到的错误和异常
Nov 02 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网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
php 多文件上传的实现实例
2016/10/23 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
Laravel解决nesting level错误和隐藏index.php的问题
2019/10/12 PHP
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
js propertychange和oninput事件
2014/09/28 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
JS实现图片平面旋转的方法
2016/03/01 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
Python获取apk文件URL地址实例
2013/11/01 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
2015/12/24 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
理解python中生成器用法
2017/12/20 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
python序列类型种类详解
2020/02/26 Python
厨房工作人员岗位职责
2013/11/15 职场文书
二年级班级文化建设方案
2014/05/10 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
贫困证明怎么写
2015/06/16 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
python munch库的使用解析
2021/05/25 Python
Java中的继承、多态以及封装
2022/04/11 Java/Android
Centos7 Shell编程之正则表达式、文本处理工具详解
2022/08/05 Servers