【问题标题】:real time plotting with Julia与 Julia 进行实时绘图
【发布时间】:2017-05-31 09:38:40
【问题描述】:

我正在尝试用 Julia 绘制一个实时演化的函数。

为此,当我尝试完全应用here 给出的示例时,我看到 GR 包可以在 Julia 中使用:

import GR
GR.inline("mov")
x = [0:0.01:2*pi]

    for i = 1:200
    GR.plot(x, sin.(x + i / 10.0))
    end

GR.show()

我在执行循环部分时收到以下错误消息:

预期的实数或复数

in #plot_args#12(::Symbol, ::Function, ::Tuple{Array{FloatRange{Float64},1},Array{Array{Float64,1},1}}) 在 /Users /myname/.julia/v0.5/GR/src/jlgr.jl:936 ....

我在网上查了一下,发现this 有人似乎有类似的问题,但我真的不明白答案以及我应该怎么做才能让它工作。

我还可以找到另一种实时绘图的方法(在循环内)。

有人可以帮忙吗?

提前谢谢你

【问题讨论】:

  • 什么是x? -- 20 个字符
  • 对不起。我只是写了链接1中提供的代码的步骤不起作用。
  • 如果您提供一个可以粘贴的最小工作示例,而不是一些本身不起作用的代码,那么回答您的问题会容易得多。事实上,如果你不这样做,你通常不太可能在这里收到答案。我已经使用您的链接中的代码进行了回复。
  • 是的,这是真的对不起,我想更短。我将问题编辑得更清楚。

标签: plot real-time julia ijulia-notebook


【解决方案1】:

这是一个使用 Plots 绘制到 GR 的解决方案。我相信这也可以直接在 GR 中完成,但不确定您的示例有什么问题。

using Plots
gr(show = true) # in IJulia this would be: gr(show = :ijulia)
x = 0:0.01:2*pi
for i in 1:200 
    display(plot(x, sin.(x + i / 10.0)))
end

请注意,此示例是实时的(根据问题),因此可能会有些滞后。在示例中的代码中,而是创建了一个 gif,然后将其显示给 ijulia。

【讨论】:

  • 从提供的屏幕截图来看,我得到的印象是他正在尝试专门在 IJulia 中而不是通用 REPL 中这样做。
  • 这行得通。我认为'gr(show = :ijulia)' 是必要的!谢谢
  • 对不起...第一次工作,但现在有时工作,有时我直接得到循环结束时的所有曲线,它并不总是实时工作,准确相同的代码。你知道会发生什么吗?
  • 我认为这与 Jupyter notebook 的更新方式有关,它不是实时绘图恕我直言的最佳环境。也许尝试在我上面链接的讨论线程(discourse.julialang.org/t/juno-and-interactive-plot/3989/2)中发帖,Josef Heinen 回答说是 GR 的创建者,很可能是原始笔记本。
  • 我在上面添加了“显示”,这使得答案更普遍,但在 ijulia 中并非绝对必要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-24
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
  • 2017-06-02
相关资源
最近更新 更多