如何制作具有两个变量的条件函数的轮廓图?

时间:2019-05-07 20:30:48

标签: python function matplotlib graph conditional

我想做一个条件函数的轮廓图,但是出现错误。 这是代码:

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:

我认为我正在以某种方式将布尔逻辑应用于数组(尽管我不明白这是怎么发生的),这是导致错误的原因,但是我不知道如何重写它,以便可以得到等高线图。 我到处都在寻找答案,但是要么听不懂,要么无法解决这个问题。

有什么建议吗? 非常感谢

0 个答案:

没有答案