gpt4 book ai didi

python - 限制 matplotlib 中的 x、y、z 插值热图

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:51 24 4
gpt4 key购买 nike

我想绘制一个热图,在每对空间 x,y 坐标上我都有值(=热图颜色)z,但我想用 z0= 标记出 [z0,z1] 之间的 z 值0.0 和 z1=0.4,而一些内插 z 值在这些边界之下和之上。

from numpy.random import uniform, seed
from matplotlib.mlab import griddata
import matplotlib.pyplot as plt
import numpy as np
# make up data.
#npts = int(raw_input('enter # of random points to plot:'))
seed(0)
npts = 200
x = uniform(-2, 2, npts)
y = uniform(-2, 2, npts)
z = x*np.exp(-x**2 - y**2)
# define grid.
xi = np.linspace(0, 1, 1000)
yi = np.linspace(0, 1, 1000)
# grid the data.
zi = griddata(x, y, z, xi, yi, interp='linear')
# contour the gridded data, plotting dots at the nonuniform data points.
CS = plt.contourf(xi, yi, zi, 15, cmap=plt.cm.rainbow,
vmax=abs(zi).max(), vmin=-abs(zi).max())
plt.colorbar() # draw colorbar
# plot data points.
plt.show()

enter image description here我想将颜色条和热图颜色限制在 0.0 到 0.4 之间(因此避免在热图中和颜色条中的值低于 0.0 和高于 0.4)。怎么做?谢谢

最佳答案

您可以将 numpy 数组中的值设置为 None 以使它们不被绘制。例如,

zmin = 0.0
zmax = 0.4
zi[(zi<zmin) | (zi>zmax)] = None
CS = plt.contourf(xi, yi, zi, 15, cmap=plt.cm.rainbow,
vmax=zmax, vmin=zmin)

enter image description here

关于python - 限制 matplotlib 中的 x、y、z 插值热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29607550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com