小编asa*_*sav的帖子

设置颜色条以在 matplotlib 中显示超出数据范围的值

我正在尝试创建一个图形,其中颜色条将超出数据范围(高于数据的最大值)。最终目的是我需要绘制一系列模型输出的图像(随着时间的推移),每个小时都存储在一个单独的文件中。我希望所有图形的颜色条都相同,以便它们可以加入动画。

这是一个示例脚本:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0, 360, 1.5)
y = np.arange(-90, 90, 1.5)
lon, lat = np.meshgrid(x, y)
noise = np.random.random(lon.shape) # values in range [0, 1)

fig = plt.figure()
ax = fig.add_subplot(111)
plt.hold(True)
plt.contourf(lon, lat, noise)
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)

这会产生下图:

在此处输入图片说明

我一直在尝试使用我在网上找到的两种方法将颜色条的限制设置为数据范围之外的值(例如,从 -1. 到 2.):

在绘图线内设置 vmin=-1 和 vmax=2:

fig = plt.figure()
ax = fig.add_subplot(111)
plt.hold(True)
plt.contourf(lon, lat, noise, vmin=-1., vmax=2.)
plt.colorbar()
Run Code Online (Sandbox Code Playgroud)

这似乎只更改显示的颜色,因此颜色图中的第一种颜色将对应于 -1,最后一种颜色对应于 2,但它不会扩展颜色条以显示这些值(下面链接中的左图)。

另一种是尝试在颜色栏中强制执行刻度以扩展到该范围:

fig = plt.figure()
ax = fig.add_subplot(111)
plt.hold(True)
plt.contourf(lon, lat, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib colorbar

5
推荐指数
1
解决办法
5340
查看次数

标签 统计

colorbar ×1

matplotlib ×1

python ×1