如何解决ufunc 'square' not supported ……错误

fig = plt.figure()
ax = Axes3D(fig)

X=np.array(Length)
Y=np.array(Viscera)


X,Y=np.meshgrid(X,Y)

R=np.sqrt(X**2+Y**2)
#height value
Z=np.sin(R)

ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.get_cmap('rainbow'))
ax.contourf(X,Y,Z,zdir='z',offset=-2,cmap='rainbow') #等高线图  即下面的部分
ax.set_zlim(-2,2)

改成列表和元组形式都出现一下错误

ufunc 'square' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

Length = [1, 2, 3] # 长度轴上的示例数值
Viscera = [4, 5, 6] # 内脏轴上的示例数值

X, Y = np.meshgrid(Length, Viscera)
R = np.sqrt(X2 + Y2)

ax.plot_surface(X, Y, R)

plt.show()
通过 plot_surface 函数创建了3D图形,通过 plt.show() 显示出来。