在 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"))
这将产生下图:
我想在 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"))
这将产生下图: