运筹系列70:julia的交互界面

Posted IE06

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运筹系列70:julia的交互界面相关的知识,希望对你有一定的参考价值。

1. Interact

1.1 安装

using Pkg;Pkg.add("Interact");Pkg.build("Interact")
using WebIO
WebIO.install_jupyter_nbextension()

此外,需要激活ipywidgets,在命令行中执行

jupyter nbextension enable --py widgetsnbextension

1.2 Interact简单使用

使用@manipulate宏
Range: slider.
Array/Dictionary: toggle buttons
String: text box
boolean: checkbox
number: spinbox
date or time: date picker
color: (from the Colors package.) color picker!

下面是个例子:

using Plots

x = y = 0:0.1:30

freqs = OrderedDict(zip(["π/4", "π/2", "3π/4", "π"], [π/4, π/2, 3π/4, π]))

mp = @manipulate for freq1 in freqs, freq2 in slider(0.01:0.1:4π; label="freq2")
    y = @. sin(freq1*x) * sin(freq2*x)
    plot(x, y)
end

在这里插入图片描述

1.3 Blink:窗口模式

julia> Pkg.add("Blink")
julia> Blink.AtomShell.install()
using Blink
ui = button()
display(ui)
w = Window()
body!(w, ui);

过一会就会出来一个窗口
在这里插入图片描述

下面是从窗口运行julia的例子

# Set up julia to handle the "press" message:
handle(w, "press") do args
  @show args
end
# Invoke the "press" message from javascript whenever this button is pressed:
body!(w, """<button onclick='Blink.msg("press", "HELLO")'>go</button>""");

在这里插入图片描述

1.4 Mux:页面模式

using Mux
WebIO.webio_serve(page("/", req -> ui), 9000) 

输入localhost:9000可以进行页面

1.5 交互

使用on函数即可
在这里插入图片描述
也可以使用匿名函数
在这里插入图片描述

2. Pluto

2.1 安装

打开julia,进入pkg模式,然后add Pluto,然后运行

import Pluto;
Pluto.run();

然后打开localhost:1234,界面如下:
在这里插入图片描述

2.2 交互

使用@bind + html
在这里插入图片描述
在这里插入图片描述

以上是关于运筹系列70:julia的交互界面的主要内容,如果未能解决你的问题,请参考以下文章

运筹系列80: 使用Julia精确求解tsp问题

运筹系列68:julia启发式求解tsp问题

运筹系列79:使用Julia进行column generation求解

运筹系列68:TSP问题Held-Karp下界的julia实现

运筹系列69:GPU版本的单纯形法

运筹系列75:LKH核心代码的python实现