Você está se deparando com uma peculiaridade de
ScalarMappables
. Eles se encarregam de normalizar os dados para estarem no intervalo [0, 1] e passar esse valor para o mapa de cores. Por padrão, ele define a parte inferior do intervalo para min(values_you_are_mapping)
e o topo para o máximo, que se todos os seus valores forem idênticos resulta na largura do intervalo sendo zero, e o mapeamento (v - max_v) / (max_v - min_v)
explode. A solução é dizer qual deve ser o intervalo imshow(..., vmin=min_t, vmax=max_t)
scatter(..., vmin=min_t, vmax=max_t)
onde
max_t
e min_t
são as temperaturas máximas e mínimas que você poderia obter. Isso também tornará o mapeamento de cores consistente em todas as suas figuras.