Engee 文档

文本

该页面正在翻译中。

text(positions; text, kwargs...)
text(x, y; text, kwargs...)
text(x, y, z; text, kwargs...)

绘制通过 文本 关键字。 文本 使用 以点为基础的 转换特性。

绘图类型

绘图类型别名 文本 功能是 文本.

标记空间像素

默认情况下,文本是用 markerspace=:像素,这意味着文本大小在像素空间中解释。 (文本位置的空间由 空间 属性代替。)

文本的boundingbox与 markerspace=:像素 将包括每个数据点或每个文本锚点,但不包括文本本身,因为它的范围取决于它所在的轴的当前投影。 这也意味着 autolimits! 可能会切断您的文本,因为字形在数据坐标中没有有意义的大小(大小与缩放级别无关),并且您必须小心手动放置文本或设置数据限制,以便它完全可见。

您可以用一个位置绘制一个字符串,也可以用一个位置向量绘制一个字符串向量。 </无翻译>

using CairoMakie
f = Figure()

Axis(f[1, 1], aspect = DataAspect(), backgroundcolor = :gray50)

scatter!(Point2f(0, 0))
text!(0, 0, text = "center", align = (:center, :center))

circlepoints = [(cos(a), sin(a)) for a in LinRange(0, 2pi, 16)[1:end-1]]
scatter!(circlepoints)
text!(
    circlepoints,
    text = "this is point " .* string.(1:15),
    rotation = LinRange(0, 2pi, 16)[1:end-1],
    align = (:right, :baseline),
    color = cgrad(:Spectral)[LinRange(0, 1, 15)]
)

f
797648d

标记空间数据

对于维度在数据空间中有意义的文本,设置 markerspace=:数据. 这意味着数据坐标中的文本的boundingbox将包括每个字形。 </无翻译>

using CairoMakie
f = Figure()
LScene(f[1, 1])

text!(
    [Point3f(0, 0, i/2) for i in 1:7],
    text = fill("Makie", 7),
    rotation = [i / 7 * 1.5pi for i in 1:7],
    color = [cgrad(:viridis)[x] for x in LinRange(0, 1, 7)],
    align = (:left, :baseline),
    fontsize = 1,
    markerspace = :data
)

f
26d1d7d

对齐方式

文本可以与水平对齐对齐 :左, :中心, :对 和垂直排列 :底部, :基线, :中心, :顶部. </无翻译>

using CairoMakie
aligns = [(h, v) for v in [:bottom, :baseline, :center, :top]
                 for h in [:left, :center, :right]]
x = repeat(1:3, 4)
y = repeat(1:4, inner = 3)
scatter(x, y)
text!(x, y, text = string.(aligns), align = aligns)
current_figure()
32a3c6b

理由说明

默认情况下,多行文本的对齐方式遵循对齐方式。 左对齐的文本也是左对齐的。 你可以用 理由说明 属性。 </无翻译>

using CairoMakie
scene = Scene(camera = campixel!, size = (800, 800))

点=[点(x,y)。*200为x在1:3为y在1:3]
散开!(scene,points,marker=:circle,markersize=10px)

符号=(:左,:中,:右)

for((justification,halign),point)in zip(Iterators.产品(符号,符号),点)

    t=文本!(场景,
        点,
        text="a\nshort\nparagraph",
        颜色=(:黑色,0.5),
        align=(halign,:center),
        理由=理由)

    bb=boundingbox(t,:像素)
    线框!(场景,bb,颜色=(:红色,0.2))
结束

for(p,al)in zip(points[3:3:end],(:left,:center,:right))
    文字!(场景,p。+(0,80),text="align:"*string(al),
        align=(:center,:baseline))
结束

for(p,al)in zip(points[7:9],(:left,:center,:right))
    文字!(场景,p。+(80,0),text="理由\n:"*字符串(al),
        align=(:center,:top),rotation=pi/2)
结束

场景
5db27a7

偏移量

Offset属性可用于将文本从其位置移开。 这是特别有用的与 空间=:像素,例如将文本与条形图一起放置。 您可以在数据坐标中指定条形图的结尾,然后将文本向左偏移一点。 </无翻译>

using CairoMakie
f = Figure()

horsepower = [52, 78, 80, 112, 140]
cars = ["Kia", "Mini", "Honda", "Mercedes", "Ferrari"]

ax = Axis(f[1, 1], xlabel = "horse power")
tightlimits!(ax, Left())
hideydecorations!(ax)

barplot!(horsepower, direction = :x)
text!(Point.(horsepower, 1:5), text = cars, align = (:right, :center),
    offset = (-20, 0), color = :white)

f
fda8b15

相对空间

的默认设置 文本空间=:数据,这意味着最终位置取决于轴限制和缩放。 但是,相对于轴本身放置文本可能很有用,与缩放无关。 与 空间=:相对,位置 (0, 0) 指左下角和 (1, 1) 的右上方 场景 一个情节对象在(对于一个 轴心,轴心 这相当于绘图区域,它是使用一个 场景).

一个常见的场景是在轴内放置标签: </无翻译>

using CairoMakie
f = Figure()

ax1 = Axis(f[1, 1], limits = (1, 2, 3, 4))
ax2 = Axis(f[1, 2], width = 300, limits = (5, 6, 7, 8))
ax3 = Axis(f[2, 1:2], limits = (9, 10, 11, 12))

for (ax, label) in zip([ax1, ax2, ax3], ["A", "B", "C"])
    text!(
        ax, 0, 1,
        text = label,
        font = :bold,
        align = (:left, :top),
        offset = (4, -2),
        space = :relative,
        fontsize = 24
    )
end

f
e17d2fb

数学系

Makie可以从LaTeXStrings渲染LaTeX字符串。jl包使用https://github.com/Kolaru/MathTeXEngine.jl/[MathTeXEngine.jl]。 </无翻译>

using CairoMakie
lines(0.5..20, x -> sin(x) / sqrt(x), color = :black)
text!(7, 0.38, text = L"\frac{\sin(x)}{\sqrt{x}}", color = :black)
current_figure()
4fb9e9e

您还可以将L字符串传递给许多使用文本的对象,例如作为图例中的标签。 </无翻译>

using CairoMakie
f = Figure()
ax = Axis(f[1, 1])

lines!(0..10, x -> sin(3x) / (cos(x) + 2),
    label = L"\frac{\sin(3x)}{\cos(x) + 2}")
lines!(0..10, x -> sin(x^2) / (cos(sqrt(x)) + 2),
    label = L"\frac{\sin(x^2)}{\cos(\sqrt{x}) + 2}")

图例(f[1,2],ax)

f
1715f97

富文本

使用富文本,您可以方便地绘制部分具有不同颜色或字体的文本,并且可以将部分定位为下标和上标。 您可以使用这些函数创建这样的富文本对象 富有, 上标, 下标, 子计划左_subsup,所有这些都创造了 RichText 物体。

这些函数中的每一个都采用可变数量的参数(除了 子计划左_subsup 其中正好有两个参数),每个参数都可以是 字符串RichText. 每个也可以接受关键字参数,例如 颜色字体,来为给定部件设置这些属性。 字体,颜色等的顶级设置。 取自 文本 属性像往常一样。 </无翻译>

using CairoMakie
f = Figure(fontsize = 30)
Label(
    f[1, 1],
    rich(
        "H", subscript("2"), "O is the formula for ",
        rich("water", color = :cornflowerblue, font = :italic)
    )
)

str = "A BEAUTIFUL RAINBOW"
rainbow = cgrad(:rainbow, length(str), categorical = true)
fontsizes = 30 .+ 10 .* sin.(range(0, 3pi, length = length(str)))

rainbow_chars = map(enumerate(str)) do (i, c)
    rich("$c", color = rainbow[i], fontsize = fontsizes[i])
end

Label(f[2, 1], rich(rainbow_chars...), font = :bold)

Label(f[3, 1], rich("Chemists use notations like ", left_subsup("92", "238"), "U or PO", subsup("4", "3−")))

f
243e14a

调整偏移量

有时,当相邻使用常规和斜体字体时,字形之间的间隙太窄或太宽。 您可以使用 偏移量 富文本按与字体大小成比例的量移动字形的值。 </无翻译>

using CairoMakie
f = Figure(fontsize = 30)
Label(
    f[1, 1],
    rich(
        "ITALIC",
        superscript("Regular without x offset", font = :regular),
        font = :italic
    )
)

Label(
    f[2, 1],
    rich(
        "ITALIC",
        superscript("Regular with x offset", font = :regular, offset = (0.15, 0)),
        font = :italic
    )
)

f
c80d8dd

属性

对齐;对齐

默认值为 (:左,:下)

设置字符串w.r.t的对齐方式。 职位. 用途 :左,:中心,:右,:顶部,:底部,:基线 或分数。

阿尔法

默认值为 1.0

Colormap或color属性的alpha值。 多个阿尔法像在 图(alpha=0.2,颜色=(:红色,0.5),会成倍增加。

夹式飞机

默认值为 自动的

剪辑平面提供了一种在3D空间中进行剪辑的方法。 您可以设置最多8个向量 平面3f 飞机在这里,后面的情节将被裁剪(即变得不可见)。 默认情况下,剪辑平面继承自父绘图或场景。 您可以删除父 夹式飞机 通过传递 平面3f[].

颜色

默认值为 @继承textcolor

设置文本的颜色。 你可以通过传递一个字形来设置一个颜色 向量资料{<:Colorant},或整个文本的一种着色剂。 如果颜色是数字的向量,则使用colormap args将数字映射到颜色。

颜色表

默认值为 @继承colormap:viridis

设置为数字采样的颜色表 颜色s. PlotUtils.cgrad(。..), 麦琪反向(any_colormap) 也可以使用,或者来自ColorBrewer或PlotUtils的任何符号。 要查看所有可用的颜色渐变,您可以调用 麦琪可用_gradients().

颜色变化

默认值为 自动的

表示的开始点和结束点的值 颜色表.

色阶;色阶

默认值为 身份认同

的颜色变换功能。 可以是任何函数,但只能与 颜色栏身份认同, 日志, 日志2, 日志10, sqrt,sqrt, 罗吉特, 麦琪伪科学10麦琪符号10.

depth_换档

默认值为 0.0

在所有其他变换之后(即在剪辑空间中)调整绘图的深度值,其中 0<=深度<=1. 这仅适用于GLMakie和WGLMakie,可用于调整渲染顺序(如可调谐透绘)。

字体

默认值为 @继承字体

设置字体。 可以是一个 符号 这将在 字体 字典或a 字符串 指定字体的(部分)名称或字体文件的文件路径

字体

默认值为 @继承字体

用作字典来查找由 符号,例如 :普通, :粗体:斜体.

字体大小

默认值为 @继承fontsize

字体大小单位取决于 标记空间.

外汇管理局

默认值为 错误

调整绘图是否使用fxaa渲染(仅限消除锯齿、GLMakie)。

[医]发光色

默认值为 (:黑色,0.0)

设置文本周围发光效果的颜色。

[医]光宽度

默认值为 0.0

设置文本周围发光效果的大小。

[医]高

默认值为 自动的

Colorrange上方任何值的颜色。

可检查的

默认值为 @继承inspectable

设置此图是否应由 数据探测仪. 默认值取决于父场景的主题。

检查员-检查员

默认值为 自动的

设置回调函数 (检查员,情节)->。.. 用于清理DataInspector中的自定义指标。

检查员-检查员

默认值为 自动的

设置回调函数 (检查员,情节,索引)->。.. 它取代了默认值 显示_数据 方法。

检查器_label

默认值为 自动的

设置回调函数 (绘图、索引、位置)->字符串 它替换了DataInspector生成的默认标签。

理由说明

默认值为 自动的

设置文本w.r.t其边界框的对齐方式。 可以是 :左,:中,:右 或一小部分。 将默认为水平对齐 对齐;对齐.

线高,线高

默认值为 1.0

线高乘数。

低频,低频

默认值为 自动的

Colorrange以下任何值的颜色。

标记空间

默认值为 :像素

设置在其中的空间 字体大小 使徒行传。 见 麦琪空间() 供可能的输入。

模型

默认值为 自动的

为绘图设置模型矩阵。 这将复盖使用 翻译!, 旋转!规模!.

纳米色

默认值为 :透明

NaN值的颜色。

偏移量

默认值为 (0.0, 0.0)

文本从给定位置的偏移量 标记空间 单位。

透支

默认值为 错误

控制绘图是否将绘制在其他绘图上。 这具体意味着忽略GL后端中的深度检查

职位

默认值为 (0.0, 0.0)

弃用:指定文本的位置。 使用位置参数 文本 相反。

轮调

默认值为 0.0

围绕给定位置旋转文本

空间

默认值为 :数据

设置包含情节的盒子的变换空间。 见 麦琪空间() 供可能的输入。

ssao

默认值为 错误

调整是否使用ssao(屏幕空间环境光遮蔽)渲染绘图。 请注意,这仅在3D绘图中有意义,并且仅适用于 fxaa=真.

[医]斯特罗克色

默认值为 (:黑色,0.0)

设置标记周围轮廓的颜色。

斯特罗克威德斯

默认值为 0

设置标记周围轮廓的宽度。

文本

默认值为 ""

指定要显示的一段文本或一个文本向量,其中数字必须与给定的位置数匹配。 Makie支持 字符串 它用于所有普通文本和 [医]拉丁文 哪些布局数学表达式使用 MathTeXEngine.jl.

变换器/变换器

默认值为 错误

控制模型矩阵(不转换)是否应用于字形本身,而不仅仅是位置。 (如果这是真的, 规模!旋转! 会影响文字字形。)

转型

默认值为 :自动

没有可用的文档。

透明度

默认值为 错误

调整情节处理透明度的方式。 在GLMakie 透明度=真 导致使用顺序独立的透明度。

可见

默认值为 真的

控制是否渲染绘图。

word_wrap_width

默认值为 -1

指定文本的线宽限制。 如果一个单词溢出此限制,则在其前面插入换行符。 负数禁用自动换行。