In [34]:
import plotly.graph_objects as go
import numpy as np
from sympy.physics.hydrogen import R_nl
from sympy import Ynm
from sympy import var

var("r theta phi")


n = 3
l = 2
m = 0
Z = 2

xmesh=[]
ymesh=[]
zmesh=[]
psi=[]
points=20

for z in np.linspace(-10.,10.,points):
    for y in np.linspace(-10.,10.,points):
        for x in np.linspace(-10.,10.,points):
            xmesh.append(x)
            ymesh.append(y)
            zmesh.append(z)
            r = np.sqrt(x**2+y**2+z**2)
            theta=np.arccos(z/r)
            phi=np.arctan(y/x)
            value=R_nl(n,l,r,Z)* Ynm(l,m,theta,phi).evalf() 
            psi.append(float(value))
#            print('{0:6.3f} {1:6.3f} {2:6.3f} {3:6.3f} {4:6.3f} {5:6.3f} {6:6.3f}'.format(x,y,z,r,theta,phi,value))

iso = 0.3*max(psi)

fig= go.Figure(data=go.Isosurface(
    x=xmesh,
    y=ymesh,
    z=zmesh,
    value=psi,
    isomin=-iso,
    isomax=iso,
    surface_count=2,
    opacity=1.0,
    caps=dict(x_show=False, y_show=False,z_show=False)
))

fig.show()



In [0]:
print(type(psi[0]))


<class 'float'>

In [0]: