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 cookielib 登录人人网的实现代码
Dec 19 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
在python3.5中使用OpenCV的实例讲解
Apr 02 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
Apr 02 Python
pandas or sql计算前后两行数据间的增值方法
Apr 20 Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 Python
pycharm的console输入实现换行的方法
Jan 16 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
基于virtualenv创建python虚拟环境过程图解
Mar 30 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 Python
python基础之函数的定义和调用
Oct 24 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/08/08 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
JS获取父节点方法
2009/08/20 Javascript
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
浅析jquery某一元素重复绑定的问题
2014/01/03 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
js轮盘抽奖实例分析
2020/04/17 Javascript
浅谈Web页面向后台提交数据的方式和选择
2016/09/23 Javascript
使用vue构建一个上传图片表单
2017/07/04 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
解决layui laydate 时间控件一闪而过的问题
2019/09/28 Javascript
vue props default Array或是Object的正确写法说明
2020/07/30 Javascript
[02:36]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma 选手采访
2021/03/11 DOTA
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
python定时执行指定函数的方法
2015/05/27 Python
python实现二维码扫码自动登录淘宝
2016/12/27 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
2020/11/05 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
《珍珠泉》教学反思
2014/02/20 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
刮痧观后感
2015/06/05 职场文书
预备党员入党感想
2015/08/10 职场文书