我有一个pcolormesh图(图1)和一个相应的颜色条,显示数据范围(0到100)。现在为了说明我的问题,我将数据除以2,并显示第二个pcolormesh图(图2),数据范围在0到50之间。
我想要的是:
图2应该使用与图1相同的颜色条和范围。它不应该在0和50之间缩放完整的颜色条值,而是应该使用与第一个图的数据相一致的颜色(50应该在图2中颜色条的一半)。因此,图2中的所有颜色应该在黑色和绿色之间!
下面是我的代码:
import numpy as np
import matplotlib.pyplot as plt
nx, ny = 10, 20
nz = nx*ny
minx, maxx = -5, 5
miny, maxy = -10, 10
minz, maxz = 0, 100
np.random.seed(1)
x = np.linspace(minx, maxx, nx)
y = np.linspace(miny, maxy, ny)
z1 = np.linspace(minz, maxz, nz)
np.random.shuffle(z1)
z2 = z1/2
z1=z1.reshape(ny,nx)
z2=z2.reshape(ny,nx)
图1
fig1, ax1 = plt.subplots(1,figsize=(5,5))
plot1=ax1.pcolormesh(x,y,z1,cmap='nipy_spectral',shading='auto')
ax1.set_xlabel('x')
ax1.set_ylabel('y')
cb1=fig1.colorbar(plot1,ax=ax1)
图2(颜色条应从0到100,最大值应为绿色)
fig2, ax2 = plt.subplots(1,figsize=(5,5))
plot2=ax2.pcolormesh(x,y,z2,cmap='nipy_spectral',shading='auto')
ax2.set_xlabel('x')
ax2.set_ylabel('y')
cb2=fig2.colorbar(plot2,ax=ax2)
1条答案
按热度按时间nom7f22z1#
您可以将颜色条限制更改为第一个颜色条的限制。