如何在图中绘制隐式方程?

问题描述 投票:0回答:1

我希望将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()
python plot graph plotly
1个回答
0
投票

基本上,z = F-G是将要变为曲线和绘图的零的函数,因此请不要用大括号括起来。然后,您只想绘制一条曲线,因此使用contours具体您感兴趣的精确轮廓。

外观如下:

enter image description here

这是代码:

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一样。

© www.soinside.com 2019 - 2024. All rights reserved.