gpt4 book ai didi

plot - Julia 中的 3D 矢量图

转载 作者:行者123 更新时间:2023-12-04 21:30:29 24 4
gpt4 key购买 nike

我正在尝试在 Julia 中绘制一个 EM 波(在 z 方向上传播)矢量场。我环顾四周,看起来 quiver 是我需要使用的,但我尝试过但没有成功。据我所知, (x, y, z) 是向量的起源,而 (u, v, w) 是起源于 (x, y, z) 点的向量本身。这是我到目前为止所拥有的,但这似乎没有产生正确的情节。我怎样才能让它发挥作用?我也愿意尝试其他绘图库。提前致谢。

using Plots; gr()
t = 0; n = 100; k = 1; ω = 1; φ = π/4
x = y = w = zeros(n)
z = range(0, stop=10, length=n)
u = @. cos(k*z - ω*t)
v = @. sin(k*z - ω*t)
quiver(x, y, z, quiver=(u, v, w), projection="3d")

Output

最佳答案

我不确定这是你想要的结果,但我已经设法让你的代码在 Julia v1.1 中工作:

using PyPlot

pygui(true)

fig = figure()
ax = fig.gca(projection="3d")
t = 0; n = 100; k = 1; ω = 1; φ = π/4
x = y = w = zeros(n)
z = range(0, stop=10, length=n)
u = cos.(k*z .- ω*t)
v = sin.(k*z .- ω*t)
ax.quiver(x,y,z, u,v,w)

enter image description here

或者,使用颜色:
using PyPlot
using Random

function main()
pygui(true)

fig = figure()
ax = fig.gca(projection="3d")
t = 0; n = 100; k = 1; ω = 1; φ = π/4
x = y = w = zeros(n)
z = range(0, stop=10, length=n)
u = cos.(k*z .- ω*t)
v = sin.(k*z .- ω*t)
a = ((u[1], 0.8, 0.5), (u[2], 0.8, 0.5))
for i in 3:length(u)-2
a = (a..., (abs(u[i]), 0.8, 0.5))
end
c = ((0.4, 0.5, 0.4), (0.4, 0.9, 0.4), (0.1, 0.1, 0.1))
q = ax.quiver(x,y,z, u,v,w, color = a)
end
main()

enter image description here

关于plot - Julia 中的 3D 矢量图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53871733/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com