0

我在 python 中创建轮廓图并设置颜色条的限制时遇到问题。

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

我的代码如下所示:

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 的整个范围以及相应的颜色。

4

1 回答 1

1

这是因为您将N = 51, 覆盖vminand vmax, 设置为仅基于输入数组的轮廓 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()

在此处输入图像描述

于 2015-08-26T16:50:07.220 回答