使用 Julia 在命令行中创建动画图

Creating animated plots in the command line with Julia

Julia 具有令人愉快的能力,可以生成由 Unicode 符号构建的图表,这些符号以非常直接的方式直接打印到命令行。例如,以下代码直接向命令行生成正弦函数的 Unicode 图:

using Plots
unicodeplots();
x = [0:0.1:2*pi;];
y = sin.(x);
plot(x,y)

我想尝试找到一种方法来直接在命令行上创建这种形式的动画图。理想情况下,我想在 Unicode 中生成单个图以动画的方式“更新”。

然而,虽然将数百个不同的帧打印到命令行自然不太吸引人,但如果它“看起来”像动画,这样的解决方案是可以接受的。另一个不太可接受的解决方案是将此类 Unicode 图打印成 gif以一种对所有平台都一致的方式;尝试做任何涉及陪审团操纵@animate 和@gif 的尝试基本上都失败了,因为这两个函数甚至不能将 Unicode 图打印到 Julia 的 Windows 形式的文件中.

更新:这是一个在命令行中生成“动画”的代码示例,这实际上是不可接受的,它只是简单地绘制每个不同的帧,然后在命令行中绘制由特殊 Unicode 字符提供的“间距” (提示由 niczky12 提供):

using Plots
unicodeplots();
n = 100;
x = [0:0.1:4*pi;];

for i = 1:30
    y = sin.(x .+ (i/2));
    plot(x, y, show=true, xlims = (0,4*pi), ylims = (-1,1))
    sleep(0.01)
    println("[2J")
end

稍微改进可能是这样的:

let
   print("[2J")
   for i in 1:30
      println("[H")
      y = sin.(x .+ (i/2));
      plot(x, y, show=true, xlims = (0,4*pi), ylims = (-1,1))
      sleep(0.01)
   end
end