如何绘制二元条件函数的等值线图?

2024-09-29 21:56:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做一个条件函数的等高线图,但是我得到了一个错误。 代码如下:

from math import *
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
a1=15.8
a2=18.3
a3=0.714
a4=23.2
def bindingenergy(Z,A):
    if A%2==1:
        a5=0
    elif A%2==0 and Z%2==0:
        a5=12
    else:
        a5=-12
    B=a1*A-a2*A**(2/3)-a3*((Z**2)/A**(1/3))-a4*(((A-2*Z)**2)/A)+(a5/A**(1/2))
    C=B/A
    return C
s=np.arange(1,300)
t=np.arange(1,100)
X, Y=np.meshgrid(t,s)
E=bindingenergy(X,Y)
plt.ion()
plt.contourf(X,Y,E,25, cmap=cm.rainbow)
plt.colorbar()
plt.show()

当我运行程序时,我得到一个错误: ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()

为了这条线

if A%2==1:

我想我是在某种程度上把布尔逻辑应用到一个数组(虽然我不知道这是怎么发生的),这就是错误的原因,但是我不知道如何重写它,这样我就可以得到轮廓图。 我到处都在寻找答案,但不是不明白就是不适用于这个问题。你知道吗

有什么建议吗? 多谢了


Tags: fromimporta2ifmatplotliba1as错误

热门问题