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脚本
Sep 01 Python
跟老齐学Python之Python文档
Oct 10 Python
Python使用scrapy抓取网站sitemap信息的方法
Apr 08 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
python迭代dict的key和value的方法
Jul 06 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
Pycharm中配置远程Docker运行环境的教程图解
Jun 11 Python
python如何快速拼接字符串
Oct 28 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
Python按顺序遍历并读取文件夹中文件
Apr 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源代码
2006/10/09 PHP
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
php 中英文语言转换类代码
2011/08/11 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
jquery图片放大功能简单实现
2013/08/01 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
AngularJS 表达式详细讲解及实例代码
2016/07/26 Javascript
jQuery通过ajax方法获取json数据不执行success的原因及解决方法
2016/10/15 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
React Native之ListView实现九宫格效果的示例
2017/08/02 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
微信小程序自定义对话框弹出和隐藏动画
2018/07/19 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
js new Date()实例测试
2019/10/31 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
js表达式与运算符简单操作示例
2020/02/15 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
利用Python命令行传递实例化对象的方法
2016/11/02 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
python3 selenium自动化 下拉框定位的例子
2019/08/23 Python
如何更改 pandas dataframe 中两列的位置
2019/12/27 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
2020/12/07 Python
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
2014年消防工作实施方案
2014/02/20 职场文书
MySQL EXPLAIN输出列的详细解释
2021/05/12 MySQL
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android