在 Julia 中绘制代数曲线

Plotting Algebraic Curves in Julia

我想在 Julia

中可视化一些代数曲线

我有多项式:

f1=(x^4+y^4-1)(x^2+y^2-2)+x^5y

f2 = x^2+2xy^2-2y^2-1/2

我想绘制 V(f1) 和 V(f2),这样我就可以看到它们的公共交叉点。我曾尝试在 Gadfly.jl 中使用等高线图,但它似乎一次只能绘制一条曲线。有没有办法在 Gadfly.jl 中绘制两条曲线或在另一个 Julia 包中绘制曲线?

这是我目前所拥有的。

Gadfly 正在使用一个方便的复合物品:Layers

https://gadflyjl.org/stable/man/compositing/#Layers

这些可以通过绘图免费访问 plot_name.layers 并且可以手动附加(例如使用 append!(p.layers, new_layer) )。个人最喜欢的是在调用 plot() 之前构建两个层并在 plot() 函数中实现任何必要的图形标签:

using Gadfly

pol_one = layer(z=(x,y) -> (x^4 + y^4 - 1) * (x^2+y^2-2) + x^5 * y,
               xmin=[-2], xmax=[2], ymin=[-2], ymax=[2],
               Geom.contour(levels=[0;]))

pol_two = layer(z=(x,y) -> x^2 + 2x*y^2 - 2y^2 - 1/2,
               xmin=[-2], xmax=[2], ymin=[-2], ymax=[2],
               Geom.contour(levels=[0;]))

plot(p_layer, q_layer, Guide.xlabel("x"), Guide.ylabel("y"))

这将产生下图: