如何在Basemap上保持相同的色阶?

时间:2016-04-04 13:07:02

标签: python-2.7 python-3.x matplotlib matplotlib-basemap colorbar

我正在绘制一些积雨的地图,但它们有不同的色标,我无法比较显示的地图。有一些方法可以获得具有相同色阶的地图。以下是我的代码。

# VERIFICATION DE LA CARTE S/N
# convolution_X and convolution_mask_X are arrays
import numpy as np
import random

convolution_locale = np.array([[random.random() for _ in range(100)] for _ in range(100)])
convolution_grande = np.array([[random.random() for _ in range(100)] for _ in range(100)])

plt.subplot(1,3,1)
step1 = convolution_locale   #- convolution_mask_locale # uncomment to use your data
fig_step1 = plt.imshow(step1, interpolation='nearest')
plt.colorbar()
plt.xlabel("X (arcmin)")
plt.ylabel("Y (arcmin)")
plt.show()

plt.subplot(1,3,2)
step2 = convolution_grande  #- convolution_mask_grande # uncomment to use your data
fig_step2 = plt.imshow(step2, interpolation='nearest')
plt.colorbar()
plt.xlabel("X (arcmin)")
plt.ylabel("Y (arcmin)")

plt.subplot(1,3,3)
S_N_map = step1 - step2
fig_S_N_map = plt.imshow(S_N_map, interpolation='nearest')
plt.colorbar()
plt.xlabel("X (arcmin)")
plt.ylabel("Y (arcmin)")

plt.savefig(outname10)

1 个答案:

答案 0 :(得分:2)

您应该指定要绘制的轮廓,而不是简单地说您想要35个轮廓。例如:

m.contourf(x, y, map, np.linspace(5, 10, 35), extend='both',
           cmap=pl.cm.jet_r, animated=True)

这指定您需要5到10之间的35个等高线。extend='both' kwarg表示高于/低于5/10的数据应使用顶部/底部颜色着色。这将为你的颜色条添加“尖端”,有些人不喜欢,但其他人觉得更明确。有关详细信息,请查看my answerthis question