pyplot 描绘了颜色条的范围

pyplot depicted range of colorbar

我在 python 中创建 contourf-plot 和设置颜色条的限制时遇到问题。

到目前为止,我已将它们设置为颜色缩放正确,但只描绘了使用的部分。

我的代码如下所示:

import numpy as np
import matplotlib.pyplot as plt

data = np.loadtxt("./somefancyasciifile")
xAxisScale = np.linspace(0.0, 80, len(data[0,:]))
yAxisScale = np.linspace(0.0, 80, len(data[0,:]))

fig = plt.figure(figsize = (16, 9), dpi = 100)
ax = fig.add_subplot(111 )
image = ax.contourf(xAxisScale, yAxisScale, data, 51,vmax = 1.0, vmin = 0.0)
colorbar = fig.colorbar(image, ticks = [0.0, 0.5, 1.0])

plt.show()

默认色阶已正确调整,深蓝色为 0.0,红色为 1.0。我的最小值大约是 0.45,最大值略低于 1.0。即使颜色按照我的意愿进行了正确调整,颜色条本身的范围也只是从我的最小值到最大值。但是我希望条形图显示从 0.0 到 1.0 的整个范围以及相应的颜色。

这是因为您正在设置 N = 51,它会覆盖 vminvmax,以仅根据输入数组绘制 51 个等高线。另一种方法是将级别设置为从 0 到 1 的整个范围:使用 levels 关键字:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(10,10)*0.6+0.4 # data ranging from 0.4 to 1

xAxisScale = np.linspace(0.0, 80, len(data[0,:]))
yAxisScale = np.linspace(0.0, 80, len(data[0,:]))

fig = plt.figure(figsize = (16, 9), dpi = 100)
ax = fig.add_subplot(111 )
image = ax.contourf(xAxisScale, yAxisScale, data,levels=np.arange(0,1.01,0.01),vmin = 0.0,vmax=1.0)
colorbar = fig.colorbar(image, ticks = [0.0, 0.5, 1.0])

plt.show()