削减颜色栏范围,但保留颜色图的颜色(Matplotlib)

时间:2019-09-23 11:04:29

标签: matplotlib range colorbar clim

我有一个矩阵,其Z值从0到1为随机值。我想要一个色图,其最小值为-0.5,最大值为1(因此,我的色图的中点基本上为0.25)。但是,我想在图像旁边看到的色条应该只在Z.min()到Z.max()范围内,并且显然,色条的框应该与图的框匹配。

现在,我使用以下示例代码:

import numpy as np
import matplotlib.pyplot as plt

# Initialize plot
plt.figure(figsize=(5,5))
fig ,ax = plt.subplots()

x = y = np.linspace(0,10,11)
X,Y   = np.meshgrid(x,y)
Z     = np.random.rand(11,11)

# Plot function
plt.pcolor(X,Y,Z,cmap='RdBu',vmin=-.5,vmax=1)

# Axis clipping
plt.axis([X.min(),X.max(),Y.min(),Y.max()])

# Colorbar
cbar = plt.colorbar()
cbar.ax.set_ylim([Z.min(),Z.max()])

我现在得到这张照片:

Plot output

有人可以帮助我,最好将cbar框减小到图像尺寸吗? 有another approach,但我觉得它太长了。

我一直在关注链接herehereherehere,但我真的没有任何进一步的了解。我知道,我离解决方案不远。

感谢您的帮助!

0 个答案:

没有答案