我希望将plot implicit equation中接受的答案转换为Plotly。我尝试了很多代码,下面是其中之一,但我不了解Plotly中Contour的文档。
import plotly.graph_objects as go
delta = 0.025
xrange = np.arange(-2, 2, delta)
yrange = np.arange(-2, 2, delta)
X, Y = np.meshgrid(xrange,yrange)
F = X**2
G = 1- (5*Y/4 - np.sqrt(np.abs(X)))**2
fig = go.Figure(data =
go.Contour(
z=[[F - G, 0]]
))
fig.show()
基本上,z = F-G
是将要变为曲线和绘图的零的函数,因此请不要用大括号括起来。然后,您只想绘制一条曲线,因此使用contours
具体您感兴趣的精确轮廓。
外观如下:
这是代码:
delta = 0.025
xrange = np.arange(-2, 2, delta)
yrange = np.arange(-2, 2, delta)
X, Y = np.meshgrid(xrange,yrange)
F = X**2
G = 1- (5*Y/4 - np.sqrt(np.abs(X)))**2
fig = go.Figure(data =
go.Contour(
z = F-G,
x = xrange,
y = yrange,
contours_coloring='lines',
line_width = 2,
contours=dict(
start=0,
end=0,
size=2,
),
))
fig.show()
这是一个很好的技巧,可让您大致了解曲线的外观,但它相当粗糙,只会使结果的精度为delta
。如果您希望随时获得实际的零,则最好使用求解器,例如scipy optimize
,就像here一样。