一个简单的线性回归应用程序
让我们来说明一个数据输入和绘图应用程序的开发,它允许您获得趋势并复制近似它的线性函数的公式。
启动和停止应用程序
文件夹中有一个文件与示例 app.jl,其中包含用于基于用户数据构建趋势的最小应用程序的代码。 该图允许您直观地评估近似值的正确性,并且对于进一步的操作,用户以函数的形式接收方程。 f(x) = a*x + b,其可以插入到终端或代码单元中并作为用户程序的元素执行。
在这个例子中,我们没有使用Engee变量空间或模型管理(所有这些都可以通过库获得 using Engee我们将只向您展示如何将Julia服务器应用程序的代码与网页的HTML代码集成。
您可以启动应用程序并获得一个链接,您可以在单独的窗口中打开它(而Julia上的"服务器端"保持活动状态)。
genie_app = engee.genie.start("$(@__DIR__)/app.jl", log_file="log.txt");
display("text/html", """<a href="$(string(genie_app.url))" target="_blank">Открыть в отдельном окне</a>""")
 
要停止应用程序用于调试目的或只是为了重新启动,您需要以下命令,您需要取消注释才能执行:
engee.genie.stop("$(@__DIR__)/app.jl");
空Engee应用程序的代码
让我们来看看这样的程序是由什么组成的。 最小文件内容 app.jl 下面给出。
``'茱莉亚
使用GenieFramework
@应用程序开始
#
结束
功能ui()
[
h1("线性回归")
]
结束
@页("/",ui)
我们可以看到应用程序的开始,在应用程序布局上的位置 ui() 有一个标题,但一个空的部分。 @app 它不包含反应变量和函数。
输出图形的最小应用程序
开发的下一步是用自定义控件填充布局,以及部分 @app-与更新GUI元素或反应变量本身有关的反应变量函数:
``'茱莉亚
使用GenieFramework,PlotlyBase
初始演示数据
const TEST_VEC_X=-10:10
const TEST_VEC_Y=(-10:10)。^2 + 10 .*兰德(21)。- 5
@应用程序开始
@在x_data=""
@在y_data=""
@out message="输入数据"
@out plot_data=[scatter(x=TEST_VEC_X,y=TEST_VEC_Y,mode="标记",name="数据")]
结束
功能ui()
[
h1("线性回归"),
textfield("x数据(用逗号分隔)",:x_data),
textfield("Y数据(用逗号分隔)",:y_data),
p("{讯息}"),
绘图(:plot_data)
]
结束
@页("/",ui)
到目前为止,这段代码除了显示测试数据外什么都不做,但它已经有反应变量。 Engee工具包负责在客户端和服务器端更新这些变量的值(请记住,JavaScript应用程序在客户端运行,Julia在服务器端运行)。
此应用程序的工作原理,但为了更新图形,我们将需要输入验证和处理函数(将字符串输入转换为值的向量),执行线性回归(函数 linear_regression 基于该方法 a, b = A \ vec_y)、绘制数据及趋势(create_plot_traces)和一个结合这三个动作的函数(update_plot_data). 你会在文件中找到它们 app.jl.
结论
我们研究了如何用一个图形、几个字符串参数和一条显示状态消息的线来组织一个简约的应用程序。 元素很容易交换,应用程序的功能很容易通过向Julia或[привязав]添加代码来完善(https://engee.com/helpcenter/stable/ru/feature/genie-engee.html#использование-сторонних-пакетов-в-приложении )到外部库应用程序。