AnyMath 文档

开始行动

该页面正在翻译中。

欢迎来到Makie,Julia语言的数据可视化生态系统!

本教程将向您展示如何设置和创建如下图:

first figure

要求

你只需要一个互联网连接和一个合理最近的朱莉娅安装. 如果你还没有安装茱莉亚,请按照https://julialang.org/downloads/[julialang.org/downloads/]。

Makie适用于Windows,Mac和Linux。

安装工程

我们将使用 CairoMakie本教程中的包。

信息Makie提供多个 后端软件包各有不同的优势。 CairoMakie擅长静态2D图形,它应该在大多数计算机上运行,因为它只使用CPU,不需要GPU。

首先,在系统上的某个地方创建一个新文件夹并调用它 makie_tutorial. 我们将使用该文件夹安装CairoMakie并保存绘图。

现在,启动Julia,例如通过执行命令 朱莉娅 在一个终端。

在Julia REPL(Read-Eval-Print-Loop这是Julia的命令行界面被称为)中,将活动工作目录更改为 makie_tutorial 文件夹通过执行此命令,但一定要替换路径与您创建的位置 makie_tutorial 文件夹:

cd("path/to/the/folder/makie_tutorial")

现在,做 Pkg,Pkg 包管理器库可用

using Pkg

接下来,激活当前目录,也称为 "." (这意味着我们的 makie_tutorial 文件夹),作为Pkg环境:

Pkg.activate(".")

现在,我们可以通过运行安装CairoMakie及其所有依赖项:

Pkg.add("CairoMakie")

此命令可能需要一段时间才能完成。 您将需要一个互联网连接,所以所有必要的文件可以下载。

此过程完成后,您应该找到 项目。汤姆尔 和一个 清单。汤姆尔 文件在 makie_tutorial 文件夹。 这些文件描述了新的环境,下载的软件包存储在其他地方,在一个中央,共享的位置。

如果一切正常,你现在应该可以加载CairoMakie:

using CairoMakie

恭喜你,现在我们可以开始策划了!

密谋

运行这两行,使我们的第一个图的"数据"在您的Julia会话中可用。 它表示在两秒内进行的一些假想测量。

seconds = 0:0.1:2
measurements = [8.2, 8.4, 6.3, 9.5, 9.1, 10.5, 8.6, 8.2, 10.5, 8.5, 7.2,
        8.8, 9.7, 10.8, 12.5, 11.6, 12.1, 12.1, 15.1, 14.7, 13.1]

让我们先看一下这个数据作为一个线图. 线条图是用 线功能在Makie。 </无翻译>

lines(seconds, measurements)
62f0de1

信息返回 线(秒,测量) 在REPL中应该以某种形式向您展示情节。 它是哪种形式取决于你运行Julia REPL的上下文。

如果您在安装了Julia扩展的IDE(如VSCode)中,则绘图窗格可能已打开。 如果没有找到其他显示,您的操作系统的图像查看应用程序或浏览器应该显示图像。

让我们尝试另一个plot函数,将每个数据点显示为单独的标记。 正确的功能是 散点</无翻译>

scatter(seconds, measurements)
3059645

我们的目标是将测量数据与表示指数拟合的线一起显示。 让我们假装我们有"适合"的功能是 f(x)=exp(x)+7. 我们可以像这样画一条线: </无翻译>

lines(seconds, exp.(seconds) .+ 7)
3779422

现在,我们希望将散点图和线条图分层。

您可以使用以 !: </无翻译>

scatter(seconds, measurements)
lines!(seconds, exp.(seconds) .+ 7)
current_figure()
26f23dd

图和轴

到目前为止,我们只隐式地在Makie中使用了两个重要的对象,

是最外层的容器对象。 和一个 轴心,轴心 是一种可以包含绘图的轴对象类型。 一个 轴心,轴心 可以放置在一个 然后被绘制成。 让我们用这个系统试试前面的情节: </无翻译>

f = Figure()
ax = Axis(f[1, 1])
scatter!(ax, seconds, measurements)
lines!(ax, seconds, exp.(seconds) .+ 7)
f
88fffb4

两者兼而有之 散开!台词! 现在明确地绘制成一个 轴心,轴心 我们把它放在一个 . 轴(f[1,1]) 意味着我们把 轴心,轴心位置第1行第1列的布局。

我们现在可以给我们的 轴心,轴心 一个标题,以及x和y轴标签: </无翻译>

f = Figure()
ax = Axis(f[1, 1],
    title = "Experimental data and exponential fit",
    xlabel = "Time (seconds)",
    ylabel = "Value",
)
scatter!(ax, seconds, measurements)
lines!(ax, seconds, exp.(seconds) .+ 7)
f
738606f

情节造型

绘图函数采用许多不同的样式属性作为关键字参数。 让我们将两个图的颜色更改为红色,称为 :番茄,以及线条样式 :短跑: </无翻译>

f = Figure()
ax = Axis(f[1, 1],
    title = "Experimental data and exponential fit",
    xlabel = "Time (seconds)",
    ylabel = "Value",
)
scatter!(ax, seconds, measurements, color = :tomato)
lines!(ax, seconds, exp.(seconds) .+ 7, color = :tomato, linestyle = :dash)
f
ec57a60

传说

我们缺少的最后一个元素是传说。 创建图例的一种方法是用 标签 关键字和使用 n.轴,轴功能: </无翻译>

f = Figure()
ax = Axis(f[1, 1],
    title = "Experimental data and exponential fit",
    xlabel = "Time (seconds)",
    ylabel = "Value",
)
scatter!(
    ax,
    seconds,
    measurements,
    color = :tomato,
    label = "Measurements"
)
lines!(
    ax,
    seconds,
    exp.(seconds) .+ 7,
    color = :tomato,
    linestyle = :dash,
    label = "f(x) = exp(x) + 7",
)
axislegend(position = :rb)
f
cb37fcb

保存一个数字

一旦我们对我们的情节感到满意,我们可以使用 储蓄功能。 最常见的格式是 巴布亚新几内亚 对于图像和 svg技术pdf格式 对于矢量图形:

save("first_figure.png", f)
save("first_figure.svg", f)
save("first_figure.pdf", f)

你现在应该在你的 makie_tutorial 文件夹。