📅  最后修改于: 2023-12-03 14:44:12.755000             🧑  作者: Mango
在 Matplotlib 中,可以用颜色条(Colorbar)表示数据的值,颜色条通常用来表示数据的高低、强弱等级别,但默认颜色条的范围可能不是我们想要的,因此需要设置颜色条的范围。
Matplotlib 中可以通过设置 vmin
和 vmax
的值来限制颜色条的范围,具体说明如下:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 默认颜色条
plt.figure()
plt.imshow(Z)
plt.colorbar()
# 设置颜色条范围
plt.figure()
plt.imshow(Z, vmin=-1, vmax=1)
plt.colorbar()
运行上述代码,可以看到第一个图使用默认颜色条,第二个图将颜色条的范围限制在了 -1
到 1
之间。
有时候,我们不知道要显示的数据的最大值和最小值,此时可以使用 Matplotlib 中的 normalize
模块来自动设置颜色条的范围。具体方法如下:
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import numpy as np
# 生成数据
x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 自动设置颜色条范围
norm = mcolors.Normalize(vmin=Z.min(), vmax=Z.max())
# 绘图
plt.figure()
plt.imshow(Z, norm=norm)
plt.colorbar()
上述代码中,我们利用 mcolors.Normalize
模块自动设置颜色条的范围,代码运行后可以看到颜色条的范围已经自动适配了数据的最大值和最小值。
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import numpy as np
x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 默认颜色条
plt.figure()
plt.imshow(Z)
plt.colorbar()
# 设置颜色条范围
plt.figure()
plt.imshow(Z, vmin=-1, vmax=1)
plt.colorbar()
# 自动设置颜色条范围
norm = mcolors.Normalize(vmin=Z.min(), vmax=Z.max())
plt.figure()
plt.imshow(Z, norm=norm)
plt.colorbar()
plt.show()
以上就是如何在 Matplotlib 中设置颜色条范围的介绍,希望对你有所帮助。