python matplotlib imshow热图坐标替换/映射实例
作者:未名亚柳 时间:2023-05-04 03:46:54
今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序,
但是这样带来的问题就是画出来的x,y轴中坐标点的数据任然是x,y在数组中的下标,
实际中我们可能期望坐标点是其他的一个范围,如图:
坐标点标出来的是实际数组中的下标,而我希望纵坐标是频率,横坐标是其他的范围
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个点标出一次
完成!
补充知识: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()
来源:https://www.cnblogs.com/dzzy/p/9317917.html
标签:python,matplotlib,imshow,坐标
0
投稿
猜你喜欢
详解如何在 Linux 中安装最新的 Python 3.6 版本
2022-03-25 15:06:21
使用虚拟机在VirtualBox+openEuler上安装部署openGauss数据库
2024-01-21 22:45:53
基于python分析你的上网行为 看看你平时上网都在干嘛
2021-09-02 15:04:39
Vue路由切换页面不更新问题解决方案
2024-04-28 10:53:21
怎样设置密码保护问题
2009-02-16 13:12:00
flask的orm框架SQLAlchemy查询实现解析
2021-03-25 08:47:51
python爬虫要用到的库总结
2021-04-16 23:55:40
JavaScript Event学习第四章 传统的事件注册模型
2024-05-09 10:38:04
ASP中如何判断字符串中是否包数字
2008-07-21 12:04:00
asp.net 字符串、二进制、编码数组转换函数
2024-03-10 07:43:23
Python实现有趣的亲戚关系计算器
2022-02-25 01:11:09
python仿evething的文件搜索器实例代码
2022-05-05 09:05:15
搜索历史基本原理实现即时自动补全联想搜索技巧
2023-05-31 22:02:04
基于python的selenium两种文件上传操作实现详解
2022-01-31 23:02:17
《写给大家看的设计书》阅读笔记之对比原则
2009-07-15 10:14:00
MySQL慢查询优化解决问题
2024-01-12 19:59:41
XMLHTTP自动判断远程网页字符编码
2007-12-28 13:41:00
python爬虫之模拟登陆csdn的实例代码
2021-05-04 22:49:47
Python教程之成员和身份运算符的用法详解
2021-04-19 11:36:56
Python内置数据结构与操作符的练习题集锦
2022-07-25 05:12:53