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文件操作整理汇总
Oct 21 Python
在Python中操作列表之List.append()方法的使用
May 20 Python
Python的网络编程库Gevent的安装及使用技巧
Jun 24 Python
python、java等哪一门编程语言适合人工智能?
Nov 13 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
python读取中文txt文本的方法
Apr 12 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
python 字典 按key值大小 倒序取值的实例
Jul 06 Python
对Pandas MultiIndex(多重索引)详解
Nov 16 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
python实现超市商品销售管理系统
Oct 25 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 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程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
基于js实现二级下拉联动
2016/12/17 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
js实现返回顶部效果
2017/03/10 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
Python enumerate遍历数组示例应用
2008/09/06 Python
Python基本数据类型详细介绍
2014/03/11 Python
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
PyQt5 QListWidget选择多项并返回的实例
2019/06/17 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
Python实现异步IO的示例
2020/11/05 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
CSS3实现swap交换动画
2016/01/19 HTML / CSS
HTML5 canvas画矩形时出现边框样式不一致的解决方法
2013/10/14 HTML / CSS
应届生求职信写作技巧
2013/10/24 职场文书
大学毕业自我评价
2014/02/02 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
出国留学经济担保书
2014/04/01 职场文书
爱我中华演讲稿
2014/05/20 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
2016新年致辞
2015/08/01 职场文书
护士岗位竞聘书
2015/09/15 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL