首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Julia中的三维矢量图

Julia中的三维矢量图
EN

Stack Overflow用户
提问于 2018-12-20 23:38:56
回答 1查看 1.1K关注 0票数 6

我试图在Julia中绘制一个电磁波(在z方向上传播)矢量场。我环顾四周,它看起来是我需要使用的箭袋,我已经尝试过了,但没有成功。据我所知,(x,y,z)是向量的原点,(u,v,w)是向量本身起源于(x,y,z)点。这是我到目前为止所做的,但这似乎没有产生正确的图。我怎么才能让它工作呢?我也愿意尝试其他绘图库。提前谢谢。

代码语言:javascript
运行
复制
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")

EN

回答 1

Stack Overflow用户

发布于 2019-04-20 00:40:49

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

代码语言:javascript
运行
复制
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)

或者,使用颜色:

代码语言:javascript
运行
复制
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()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53871733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档