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使用Socket(Https)Post登录百度的实现代码
May 18 Python
python使用reportlab画图示例(含中文汉字)
Dec 03 Python
Python封装shell命令实例分析
May 05 Python
python 远程统计文件代码分享
May 14 Python
浅谈Python 中整型对象的存储问题
May 16 Python
Python编程判断这天是这一年第几天的方法示例
Apr 18 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
Python 画出来六维图
Jul 26 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
python 实现屏幕录制示例
Dec 23 Python
Python 如何调试程序崩溃错误
Aug 03 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 图片文件上传实现代码
2010/12/29 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
超漂亮的Bootstrap 富文本编辑器summernote
2016/04/05 Javascript
第六篇Bootstrap表格样式介绍
2016/06/21 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
JavaScript封闭函数及常用内置对象示例
2019/05/13 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
Python使用迭代器捕获Generator返回值的方法
2017/04/05 Python
python中itertools模块zip_longest函数详解
2018/06/12 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
pandas-resample按时间聚合实例
2019/12/27 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
香港莎莎官网Sasa.com:亚洲著名国际化妆品商城
2019/11/10 全球购物
家长会欢迎标语
2014/06/24 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
深入理解go缓存库freecache的使用
2022/02/15 Golang