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去掉字符串中重复字符的方法
Feb 27 Python
Python的函数的一些高阶特性
Apr 27 Python
简单谈谈python中的多进程
Nov 06 Python
Python如何快速上手? 快速掌握一门新语言的方法
Nov 14 Python
快速查询Python文档方法分享
Dec 27 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
在python中做正态性检验示例
Dec 09 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
pytorch finetuning 自己的图片进行训练操作
Jun 05 Python
Python基础教程,Python入门教程(超详细)
Jun 24 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
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
php实现博客,论坛图片防盗链的方法
2016/10/15 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
用 javascript 实现的点击复制代码
2007/03/24 Javascript
js 效率组装字符串 StringBuffer
2009/12/23 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
[02:03]《现实生活中的DOTA2》—林书豪&DOTA2职业选手出演短片
2015/08/18 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Python实现获取某天是某个月中的第几周
2015/02/11 Python
python实现决策树、随机森林的简单原理
2018/03/26 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
美国折扣地毯销售网站:Rugs.com
2020/03/27 全球购物
广播体操比赛口号
2014/06/10 职场文书
挂职学习心得体会
2014/09/09 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
python百行代码实现汉服圈图片爬取
2021/11/23 Python
详解Python中*args和**kwargs的使用
2022/04/07 Python
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers
Spring 使用注解开发
2022/05/20 Java/Android