我试图为我定义的函数绘制热图。在我的函数中,我拥有A的值和p的值,因此在我的热图中,我希望A和p成为我的x和y轴。当我运行代码时,只绘制了热图的四分之一,我不确定为什么。
这是我的代码以及我一直在尝试的东西。
def funct_one(A, x, p):
return np.log(abs((A/4) * (((p+1)**(p+1))/p**p) * ((p*x**(p-1)) - (p+1)*x**p)))
def funct_two(A, x, p):
n1 = 101
n2 = 101
var_l = 0
for i in range(n1):
x = log(A, x, p)
var_l = var_l + funct_one(A, x, p)
for j in range(n2):
glob_l = var_l/n2
return glob_l
A = np.linspace(0.1,4,50)
p = np.linspace(0.5,5,50)
# Filling heatmap
map = np.empty((A.size, p.size))
for i in range(A.size):
for j in range(p.size):
x=0.2
map[i,j] = funct_two(A[i], x, p[j])
fig = plt.figure(figsize = (8,8))
s = fig.add_subplot(1,1,1, xlabel='A', ylabel='p')
im = s.imshow(map, extent=(A[0], A[-1], p[0], p[-1]),origin='lower')
fig.colorbar(im)
热图没有完全填满,只有四分之一被填满,其余留空。谁能告诉我为什么?