如何在两个不同的图上将plt.imshow()的颜色图设置为相同的值

时间:2018-09-20 03:05:47

标签: python matplotlib

请考虑以下内容。我有两个情节:

fig = plt.figure()
plt.imshow(nonfour, cmap='gray')

enter image description here

fig = plt.figure()
plt.imshow(np.abs(four), cmap='gray')

enter image description here

这两个图是使用数组nonfour和np.abs(four)创建的。创建每个图时,将使用每个数组的最小值和最大值来设置颜色图。

我想做的是从我的第一个情节生成一个cmap,并将其用作我的第二个情节的cmap

(即第二张图的颜色图将基于我的第一张图的最大值和最小值)。

1 个答案:

答案 0 :(得分:2)

正如ThomasKühn所指出的,imshow使用关键字vminvmax来控制颜色图的比例。您可以使用get_clim()方法获取第一个图的(自动确定的)值:

# Create your first plot
img = plt.imshow(nonfour, cmap='gray')

# Extract vmin and vmax
vmin, vmax = img.get_clim()

# Create your second plot using these limits
plt.imshow(np.abs(four), cmap='gray', vmin=vmin, vmax=vmax)

或者,您也可以使用set_clim()方法:

img = plt.imshow(nonfour, cmap='gray')
img2 = plt.imshow(np.abs(four), cmap='gray')
img2.set_clim(img.get_clim())