[英]Modifying axes on matplotlib colorbar plot of 2D array
我有一个 2D numpy 数组,我想在颜色栏中使用 plot。 我无法更改轴以便它们显示我的数据集。 垂直轴从 0 到 100 “向下”,而我希望它从 0.0 到 0.1 “向上”到 go。 所以我需要做两件事:
这是我的颜色条 plot 目前看起来像的示例:
这是代码:
data = np.load('scorr.npy')
(x,y) = np.unravel_index(data.argmax(), data.shape)
max=data[x][y]
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.imshow(data, interpolation='nearest')
cbar = fig.colorbar(cax, ticks=[-max, 0, max])
cbar.ax.set_yticklabels([str(-max), '0', str(max)])
plt.show()
有人有什么建议吗? 提前致谢!
我认为您想查看 imshow 选项“来源”和“范围”。
import matplotlib.pyplot as plt
import numpy as np
x,y = np.mgrid[-2:2:0.1, -2:2:0.1]
data = np.sin(x)*(y+1.05**(x*np.floor(y))) + 1/(abs(x-y)+0.01)*0.03
fig = plt.figure()
ax = fig.add_subplot(111)
ticks_at = [-abs(data).max(), 0, abs(data).max()]
cax = ax.imshow(data, interpolation='nearest',
origin='lower', extent=[0.0, 0.1, 0.0, 0.1],
vmin=ticks_at[0], vmax=ticks_at[-1])
cbar = fig.colorbar(cax,ticks=ticks_at,format='%1.2g')
fig.savefig('out.png')
我知道更改图像 plot 上的轴标签的唯一方法是手动标记...如果有人有更清洁的方法,我很想学习它。
ax.yaxis.set_ticks(np.arange(0,100,10))
ax.yaxis.set_ticklabels(['%.2f' % 0.1/100*i for i in np.arange(0,100,10)])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.