python matplotlib imshow热图坐标替换/映射实例


Posted in Python onMarch 14, 2020

今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序,

但是这样带来的问题就是画出来的x,y轴中坐标点的数据任然是x,y在数组中的下标,

实际中我们可能期望坐标点是其他的一个范围,如图:

python matplotlib imshow热图坐标替换/映射实例

坐标点标出来的是实际数组中的下标,而我希望纵坐标是频率,横坐标是其他的范围

plt.yticks(np.arange(0, 1024, 100), np.arange(10000, 11024, 100))
#第一个参数表示原来的坐标范围,100是每隔100个点标出一次
#第二个参数表示将展示的坐标范围替换为新的范围,同样每隔100个点标出一次
plt.xticks(np.arange(0, 2000, 500), np.arange(0, 50000, 500)) 
#同理将x轴的表示范围由(0,2000)扩展到(0,50000)每隔500个点标出一次

python matplotlib imshow热图坐标替换/映射实例

完成!

补充知识:matplotlib plt.scatter()中cmap用法

我就废话不多说了,还是直接看代码吧!

import numpy as np
import matplotlib.pyplot as plt


# Have colormaps separated into categories:
# http://matplotlib.org/examples/color/colormaps_reference.html
cmaps = [('Perceptually Uniform Sequential', [
      'viridis', 'plasma', 'inferno', 'magma']),
     ('Sequential', [
      'Greys', 'Purples', 'Blues', 'Greens', 'Oranges', 'Reds',
      'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu',
      'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn', 'YlGn']),
     ('Sequential (2)', [
      'binary', 'gist_yarg', 'gist_gray', 'gray', 'bone', 'pink',
      'spring', 'summer', 'autumn', 'winter', 'cool', 'Wistia',
      'hot', 'afmhot', 'gist_heat', 'copper']),
     ('Diverging', [
      'PiYG', 'PRGn', 'BrBG', 'PuOr', 'RdGy', 'RdBu',
      'RdYlBu', 'RdYlGn', 'Spectral', 'coolwarm', 'bwr', 'seismic']),
     ('Qualitative', [
      'Pastel1', 'Pastel2', 'Paired', 'Accent',
      'Dark2', 'Set1', 'Set2', 'Set3',
      'tab10', 'tab20', 'tab20b', 'tab20c']),
     ('Miscellaneous', [
      'flag', 'prism', 'ocean', 'gist_earth', 'terrain', 'gist_stern',
      'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg', 'hsv',
      'gist_rainbow', 'rainbow', 'jet', 'nipy_spectral', 'gist_ncar'])]


nrows = max(len(cmap_list) for cmap_category, cmap_list in cmaps)
gradient = np.linspace(0, 1, 256)
gradient = np.vstack((gradient, gradient))


def plot_color_gradients(cmap_category, cmap_list, nrows):
  fig, axes = plt.subplots(nrows=nrows)
  fig.subplots_adjust(top=0.95, bottom=0.01, left=0.2, right=0.99)
  axes[0].set_title(cmap_category + ' colormaps', fontsize=14)

  for ax, name in zip(axes, cmap_list):
    ax.imshow(gradient, aspect='auto', cmap=plt.get_cmap(name))
    pos = list(ax.get_position().bounds)
    x_text = pos[0] - 0.01
    y_text = pos[1] + pos[3]/2.
    fig.text(x_text, y_text, name, va='center', ha='right', fontsize=10)

  # Turn off *all* ticks & spines, not just the ones with colormaps.
  for ax in axes:
    ax.set_axis_off()


for cmap_category, cmap_list in cmaps:
  plot_color_gradients(cmap_category, cmap_list, nrows)

#十分类散点图绘制
randlabel = np.random.randint(0,1,10)
randdata = np.reshape(np.random.rand(10*2),(10,2))


cm = plt.cm.get_cmap('RdYlBu')
z = randlabel
sc = plt.scatter(randdata[:,0], randdata[:,1], c=z, vmin=0, vmax=10, s=35,edgecolors='k', cmap=cm)
plt.colorbar(sc)
plt.show()

以上这篇python matplotlib imshow热图坐标替换/映射实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python线程锁(thread)学习示例
Dec 04 Python
详尽讲述用Python的Django框架测试驱动开发的教程
Apr 22 Python
编写Python脚本使得web页面上的代码高亮显示
Apr 24 Python
python中的闭包函数
Feb 09 Python
Python unittest单元测试框架总结
Sep 08 Python
强悍的Python读取大文件的解决方案
Feb 16 Python
Python 存储字符串时节省空间的方法
Apr 23 Python
django的分页器Paginator 从django中导入类
Jul 25 Python
Django 响应数据response的返回源码详解
Aug 06 Python
python 数据生成excel导出(xlwt,wlsxwrite)代码实例
Aug 23 Python
浅谈matplotlib 绘制梯度下降求解过程
Jul 12 Python
Django怎么在admin后台注册数据库表
Nov 14 Python
python pyqtgraph 保存图片到本地的实例
Mar 14 #Python
Python 实现将大图切片成小图,将小图组合成大图的例子
Mar 14 #Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
Mar 14 #Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 #Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 #Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 #Python
使用Python爬取弹出窗口信息的实例
Mar 14 #Python
You might like
php microtime获取浮点的时间戳
2010/02/21 PHP
PHP安全配置详细说明
2011/09/26 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
PHP封装XML和JSON格式数据接口操作示例
2019/03/06 PHP
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
jquery判断复选框选中状态以及区分attr和prop
2015/12/18 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
JS中this上下文对象使用方式
2016/10/09 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
JS加密插件CryptoJS实现AES加密操作示例
2018/08/16 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
[34:56]Ti4冒泡赛LGD vs Liquid 1
2014/07/14 DOTA
Python中的包和模块实例
2014/11/22 Python
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
python实现下载文件的三种方法
2017/02/09 Python
Python基于回溯法解决01背包问题实例
2017/12/06 Python
python psutil模块使用方法解析
2019/08/01 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
对python中list的五种查找方法说明
2020/07/13 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
英国现代绅士品牌:Hackett
2017/12/17 全球购物
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
一组SQL面试题
2016/02/15 面试题
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
国际贸易专业求职信
2014/06/04 职场文书
庆祝教师节标语
2014/10/09 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python