Python Matplotlib等高线图颜色栏

Python Matplotlib等高线图颜色栏,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,我正在把我的数据绘制成等高线图。计算会对转换后的值进行处理,所以我需要将其恢复到原始值。代码的第四行是重新翻译的过程。 但是,当我绘制它时,颜色栏显示了相对值,并且在颜色栏顶部只显示了移位值的注释。奇怪的是,我检查了矩阵值,它包含了原始值 如何在显示原始值的情况下显示颜色栏 fig=plt.figure() v=np.linspace(-180,180,25) x,y = np.meshgrid(v,v) z = np.add(z,-shift) z = z.reshape(25,25).T

我正在把我的数据绘制成等高线图。计算会对转换后的值进行处理,所以我需要将其恢复到原始值。代码的第四行是重新翻译的过程。 但是,当我绘制它时,颜色栏显示了相对值,并且在颜色栏顶部只显示了移位值的注释。奇怪的是,我检查了矩阵值,它包含了原始值

如何在显示原始值的情况下显示颜色栏

fig=plt.figure()
v=np.linspace(-180,180,25)
x,y = np.meshgrid(v,v)
z = np.add(z,-shift)
z = z.reshape(25,25).T 
plt.contourf(x,y,z,25)
fig.suptitle(AA(prefix)+' Input Data Contour Map')
plt.xlabel('$\phi$ (deg)')
plt.ylabel('$\psi$ (deg)')
plt.xticks(np.arange(-180, 181, 30))
plt.yticks(np.arange(-180, 181, 30))                                
plt.colorbar()
更新:我使用set_ticklabels()进行临时修复,其中
labels
是自定义标签的列表

但我仍然在寻找更好的方法来解决这个问题

plt.colorbar().set_ticklabels(labels)

Matplotlib不知道您的
shift
变量。它选择这样绘制,因为您试图可视化的更改是背景值的10^(-6)

您可以强制颜色栏在特定位置有记号标记,就像在使用中一样:

cbar=fig.colorbar(cax,ticks=[-1,0,1])
cbar.ax.set_yticklabels(['<-1',0','>1'])#垂直方向的色条

但是,这样做会使刻度很难读取。

根据您拥有的值,我猜您要么不能,要么不应该。偏移量大约比变化量大5个数量级,因此打印实际值将使其他人难以解释。@Elliot我认为实际值不是什么问题。我为这个问题创建了一个临时解决方案,如上面的更新所示。只是想知道,在执行plotting命令之前,我检查了
z
变量中的值,它包含原始值,因此在matplotlib中这更像是一个打印问题。
cbar = fig.colorbar(cax, ticks=[-1, 0, 1])
cbar.ax.set_yticklabels(['< -1', '0', '> 1'])  # vertically oriented colorbar