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 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
python3使用urllib模块制作网络爬虫
Apr 08 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
Python信息抽取之乱码解决办法
Jun 29 Python
Python实现的视频播放器功能完整示例
Feb 01 Python
完美解决python中ndarray 默认用科学计数法显示的问题
Jul 14 Python
详解用python生成随机数的几种方法
Aug 04 Python
flask框架json数据的拿取和返回操作示例
Nov 28 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
基于python实现可视化生成二维码工具
Jul 08 Python
Python3如何在服务器打印资产信息
Aug 27 Python
Python 串口通信的实现
Sep 29 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登陆页的密码处理方式分享
2013/10/14 PHP
深入剖析PHP中printf()函数格式化使用
2016/05/23 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
php无限级分类实现方法分析
2016/10/19 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
PHP进阶学习之命名空间基本用法分析
2019/06/18 PHP
PHP 实现链式操作
2021/03/09 PHP
出现“不能执行已释放的Script代码”错误的原因及解决办法
2007/08/29 Javascript
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
详解vue组件中使用路由方法
2019/02/12 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
python随机数分布random测试
2018/08/27 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
使用Python脚本zabbix自定义key监控oracle连接状态
2019/08/28 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
岳父生日宴会答谢词
2014/01/13 职场文书
黄河的主人教学反思
2014/02/07 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
商场促销活动总结
2014/07/10 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
道歉的话语大全
2015/05/12 职场文书
严以律己学习心得体会
2016/01/13 职场文书
学生安全责任协议书
2016/03/22 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python