繁体   English   中英

类型错误:“添加”类型的对象不是 JSON 可序列化的 - Python Graph

[英]TypeError: Object of type 'Add' is not JSON serializable - Python Graph

我正在尝试创建函数的切线近似。 但是,试图找到一种将其绘制在图形顶部的方法。 这两个函数都可以工作,但是当我绘制函数图时,出现了类型错误“'Add' 类型的对象不是 JSON 可序列化的”

x = sp.Symbol("x")
y = sp.Symbol("y")
f = 1*(np.e**(-2*(((x**2 + y**2)**(1/2))-1))-2*np.e**(-1*(((x**2 + y**2)**(1/2))-1)))
fx = f.diff(x)
fy = f.diff(y)
x = np.linspace(-5,5,50)
y = np.linspace(-5,5,50)
[xx,yy] = np.meshgrid(x,y)
ff = 1*(np.e**(-2*(((xx**2 + yy**2)**(1/2))-1))-2*np.e**(-1*(((xx**2 + yy**2)** 
(1/2))-1)))
uu = f.subs(x,2).subs(y,2) + fx.subs(x,2).subs(y,2)*(xx) + fy.subs(x,2).subs(y,2)*(yy)


import plotly.graph_objects as go
fig = go.Figure(data=[go.Surface(x=xx,y=yy,z=uu),go.Surface(x=xx,y=yy,z=ff)])
fig.show()

错误发生在最后一行代码上。

该问题与您的系数( f.subs(x,2).subs(y,2)fx.subs(x,2).subs(y,2)fy.subs(x,2).subs(y,2) )。 系数的类型为<class 'sympy.core.numbers.Float'> ,这与 numpy 数组的计算不兼容。 您可以使用float()命令转换系数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM