Engee 文档

北极星,北极星

该页面正在翻译中。

北极星,北极星 是在极坐标中给出的数据的轴,即半径和角度。 它目前是一个实验性的特性,这意味着某些功能可能丢失或损坏,并且 北极星,北极星 是(更多)开放的突破性变化。

创造北极星

创建一个 北极星,北极星 工作方式与创建 轴心,轴心. </无翻译>

using CairoMakie

f = Figure()

ax = PolarAxis(f[1, 1], title = "Title")

f
16b8e8e

密谋成北极星

就像一个 轴心,轴心 您可以直接在一个 北极星,北极星. 然后,绘图函数的输入参数将被解释为极坐标,即角度(弧度)和半径。 参数的顺序可以用 斧头theta_as_x. </无翻译>

using CairoMakie
f = Figure(size = (800, 400))

ax = PolarAxis(f[1, 1], title = "Theta as x")
lineobject = lines!(ax, 0..2pi, sin, color = :red)

ax = PolarAxis(f[1, 2], title = "R as x", theta_as_x = false)
scatobject = scatter!(range(0, 10, length=100), cos, color = :orange)

f
3619ffb

北极星限制

默认情况下,PolarAxis将假设 阿宝rlimits[]=(0.0,没有)阿宝thetalimits[]=(0.0,2pi),显示出一个完整的圆圈。 您可以调整这些限制以显示不同的北极星切口。 例如,我们可以限制 n.限制,限制 到一个较小的范围,以产生一个圆形扇区,并进一步限制rmin通过 [医]驯鹿 以将中心切出为圆弧。 </无翻译>

using CairoMakie
f = Figure(size = (600, 600))

ax = PolarAxis(f[1, 1], title = "Default")
lines!(ax, range(0, 8pi, length=300), range(0, 10, length=300))
ax = PolarAxis(f[1, 2], title = "thetalimits", thetalimits = (-pi/6, pi/6))
lines!(ax, range(0, 8pi, length=300), range(0, 10, length=300))

ax = PolarAxis(f[2, 1], title = "rlimits", rlimits = (5, 10))
lines!(ax, range(0, 8pi, length=300), range(0, 10, length=300))
ax = PolarAxis(f[2, 2], title = "both")
lines!(ax, range(0, 8pi, length=300), range(0, 10, length=300))
thetalims!(ax, -pi/6, pi/6)
rlims!(ax, 5, 10)

f
fabb71e

你可以通过调整来进一步调整北极星的方向 斧头theta_0斧头方向感. 这些调整角度是如何解释的极坐标变换下面的公式 output_angle=方向*(input_angle+theta_0). </无翻译>

using CairoMakie
f = Figure()

ax = PolarAxis(f[1, 1], title = "Reoriented Axis", theta_0 = -pi/2, direction = -1)
lines!(ax, range(0, 8pi, length=300), range(0, 10, length=300))
thetalims!(ax, -pi/6, pi/6)
rlims!(ax, 5, 10)

f
abe5ff4

请注意,默认情况下,rmin和thetalimits调整中的翻译被阻止。 这些可以通过调用来解除阻塞 autolimits!(ax[,true]) 它还告诉PolarAxis从数据中自由推导r-和thetalimits,或者通过设置 斧头fixrmin[]=错误斧头thetazoomlock[]=错误.

绘图类型兼容性

并非每种绘图类型都与极坐标变换兼容。 例如 图像 并不像它期望在矩形上绘制的那样。 热图 在CairoMakie中工作,但由于后端实现的差异而不是GLMakie。 表面 可以作为替代 图像 因为它生成一个三角形网格。 为了避免有 表面 图沿z方向延伸,从而破坏渲染顺序,建议将颜色数据传递给 颜色 属性并为z数据使用零矩阵。 作为替代 热图 您可以使用 沃罗诺伊普洛特,它在给它的点周围生成任意形状的单元格。 在这里,您通常需要设置 林斯!(ax,rmax) 你自己。 </无翻译>

using CairoMakie
f = Figure(size = (800, 500))

ax = PolarAxis(f[1, 1], title = "Surface")
rs = 0:10
phis = range(0, 2pi, 37)
cs = [r+cos(4phi) for phi in phis, r in rs]
p = surface!(ax, 0..2pi, 0..10, zeros(size(cs)), color = cs, shading = NoShading, colormap = :coolwarm)
ax.gridz[] = 100
tightlimits!(ax) # surface plots include padding by default
Colorbar(f[2, 1], p, vertical = false, flipaxis = false)

ax = PolarAxis(f[1, 2], title = "Voronoi")
rs = 1:10
phis = range(0, 2pi, 37)[1:36]
cs = [r+cos(4phi) for phi in phis, r in rs]
p = voronoiplot!(ax, phis, rs, cs, show_generators = false, strokewidth = 0)
rlims!(ax, 0.0, 10.5)
Colorbar(f[2, 2], p, vertical = false, flipaxis = false)

f
ef89054

请注意,为了看到网格,我们需要调整它的深度 斧头gridz[]=100 (较高的z表示较低的深度)。 的硬性限制 斧头格兹(-10_000, 10_000)9000 作为一个软限制,轴组件可能顺序不正确.

隐藏刺和装饰

对于一个 北极星,北极星 我们将限制绘图区域的外环解释为轴脊柱。 你可以用 脊柱。.. 属性。 </无翻译>

using CairoMakie
f = Figure(size = (800, 400))
ax1 = PolarAxis(f[1, 1], title = "No spine", spinevisible = false)
scatterlines!(ax1, range(0, 1, length=100), range(0, 10pi, length=100), color = 1:100)

ax2 = PolarAxis(f[1, 2], title = "Modified spine")
ax2.spinecolor[] = :red
ax2.spinestyle[] = :dash
ax2.spinewidth[] = 5
scatterlines!(ax2, range(0, 1, length=100), range(0, 10pi, length=100), color = 1:100)

f
563d4cf

网格线和刻度标签等装饰可以通过属性以大致相同的方式进行调整。 </无翻译>

using CairoMakie
f = Figure(size = (600, 600), backgroundcolor = :black)
ax = PolarAxis(
    f[1, 1],
    backgroundcolor = :black,
    # r minor grid
    rminorgridvisible = true, rminorgridcolor = :red,
    rminorgridwidth = 1.0, rminorgridstyle = :dash,
    # theta minor grid
    thetaminorgridvisible = true, thetaminorgridcolor = :lightblue,
    thetaminorgridwidth = 1.0, thetaminorgridstyle = :dash,
    # major grid
    rgridwidth = 2, rgridcolor = :red,
    thetagridwidth = 2, thetagridcolor = :lightblue,
    # r labels
    rticklabelsize = 18, rticklabelcolor = :red,
    rticklabelstrokewidth = 1.0, rticklabelstrokecolor = :white,
    # theta labels
    thetaticklabelsize = 18, thetaticklabelcolor = :lightblue
)

f
abf5100

我们也可以在创建后隐藏脊柱 隐藏的!(斧头). 并且,隐藏ticklabels,grid和/或minorgrid 藏起来了!, 隐藏/隐藏,而 第十八条!. </无翻译>

using CairoMakie
fig = Figure()
fullaxis(figpos, title) = PolarAxis(figpos;
                                    title,
                                    thetaminorgridvisible=true,
                                    rminorgridvisible=true,
                                    rticklabelrotation=deg2rad(-90),
                                    rticklabelsize=12,
                                    )
ax1 = fullaxis(fig[1, 1][1, 1], "all decorations")
ax2 = fullaxis(fig[1, 1][1, 2], "hide spine")
hidespines!(ax2)
ax3 = fullaxis(fig[2, 1][1, 1], "hide r decorations")
hiderdecorations!(ax3)
ax4 = fullaxis(fig[2, 1][1, 2], "hide theta decorations")
hidethetadecorations!(ax4)
ax5 = fullaxis(fig[2, 1][1, 3], "hide all decorations")
hidedecorations!(ax5)
fig
7cc4c5c

互动性

北极星,北极星 目前实现缩放,平移和重置。 缩放是通过滚动实现的, 斧头Rzoomkey=键盘。r 限制缩放到径向和 斧头thetazoomkey=键盘。t 再加上角度缩放。 您可以通过设置来阻止r方向的缩放 斧头rzoomlock=真斧头thetazoomlock=真 为θ方向。 此外,您还可以禁用缩放,只更改rmin 斧头fixrmin=true 并调整其速度与 斧头zoomspeed=0.1.

翻译是用鼠标拖动来实现的. 默认情况下,径向平移使用 斧头r_translation_button=鼠标。对 和angular翻译也使用 斧头theta_translation_button=鼠标。对. 如果 斧头fixrmin=true 不允许在r方向上平移。 如果您想禁用其中一个交互,您可以将相应的按钮设置为 错误.

还有一个交互作用,用于旋转整个轴使用 斧头axis_rotation_button=键盘。left_control和鼠标。对 和重置轴视图使用 斧头reset_button=键盘。left_control和鼠标。左图,匹配 轴心,轴心. 您可以调整这是否重置轴的旋转与 斧头reset_axis_orientation=false.

请注意 北极星,北极星 目前没有实现所使用的交互接口 轴心,轴心.

其他注意事项

在北极星外图谋

目前,在 北极星,北极星 其中将内容剪辑到相关区域。 如果您想在限制极轴的剪辑之外绘制,但仍在其场景区域内,则需要将这些绘图转换为z范围。 900010_000 或通过禁用剪切 剪辑/剪辑 属性。

作为参考,使用的z值 北极星,北极星阿宝网格深度[]=8999 对于网格线,9000用于剪辑多边形,9001用于刺,9002用于刻度标签。

径向偏移

如果你有一个远离0的rlimits的情节,你最终会在PolarAxis中有很多空的空间。 考虑例如: </无翻译>

using CairoMakie
fig = Figure()
ax = PolarAxis(fig[1, 1], thetalimits = (0, pi))
lines!(ax, range(0, pi, length=100), 10 .+ sin.(0.3 .* (1:100)))
fig
80d8aec

在这种情况下,您可能需要偏移r方向以使更多数据可见。 这可以通过设置来完成 斧头[医]放射素 把半径翻译成 r_out=r_in-radius_at_origin. </无翻译>

using CairoMakie
fig = Figure()
ax = PolarAxis(fig[1, 1], thetalimits = (0, pi), radius_at_origin = 8)
lines!(ax, range(0, pi, length=100), 10 .+ sin.(0.3 .* (1:100)))
fig
12078ff

这也可用于显示具有负半径的图: </无翻译>

using CairoMakie
fig = Figure()
ax = PolarAxis(fig[1, 1], thetalimits = (0, pi), radius_at_origin = -12)
lines!(ax, range(0, pi, length=100), sin.(0.3 .* (1:100)) .- 10)
fig
789cc24

但是请注意,转换半径会导致某种程度的失真: </无翻译>

using CairoMakie
phis = range(pi/4, 9pi/4, length=201)
rs = 1.0 ./ sin.(range(pi/4, 3pi/4, length=51)[1:end-1])
rs = vcat(rs, rs, rs, rs, rs[1])

fig = Figure(size = (900, 300))
ax1 = PolarAxis(fig[1, 1], radius_at_origin = -2,  title = "radius_at_origin = -2")
ax2 = PolarAxis(fig[1, 2], radius_at_origin = 0,   title = "radius_at_origin = 0")
ax3 = PolarAxis(fig[1, 3], radius_at_origin = 0.5, title = "radius_at_origin = 0.5")
for ax in (ax1, ax2, ax3)
    lines!(ax, phis, rs .- 2, color = :red, linewidth = 4)
    lines!(ax, phis, rs, color = :black, linewidth = 4)
    lines!(ax, phis, rs .+ 0.5, color = :blue, linewidth = 4)
end
fig
a02c1e8

径向剪切

默认半径 r_out=r_in-radius_at_origin<0 被极地变换剪掉了。 这可以通过设置禁用 斧头clip_r=错误. 有了这样的设置 r_out<0 将按原样通过极坐标变换,从而产生一个坐标在 . </无翻译>

using CairoMakie
fig = Figure(size = (600, 300))
ax1 = PolarAxis(fig[1, 1], radius_at_origin = 0.0, clip_r = true, title = "clip_r = true")
ax2 = PolarAxis(fig[1, 2], radius_at_origin = 0.0, clip_r = false, title = "clip_r = false")
for ax in (ax1, ax2)
    lines!(ax, 0..2pi, phi -> cos(2phi) - 0.5, color = :red, linewidth = 4)
    lines!(ax, 0..2pi, phi -> sin(2phi), color = :black, linewidth = 4)
end
fig
c907bad

属性

对齐模式

默认值为 里面()

场景在其建议的边界框中的对齐方式。

轴_保护_按钮

默认值为 键盘。left_control和鼠标。对

设置用于旋转PolarAxis作为一个整体的按钮。 这将在触发时替换theta翻译,并且必须包含鼠标按钮。

背景颜色

默认值为 继承(scene,:backgroundcolor,:white)

轴的背景色。

剪辑/剪辑

默认值为 真的

控制是否激活非线性剪辑特征。 请注意,当背景最终是透明的时,不应该使用这一点。

剪辑_r

默认值为 真的

控制是否 r<0 (申请后 [医]放射素)被剪切(真)或不(假)。

[医]夹色

默认值为 自动的

设置剪辑多边形的颜色。 主要用于调试目的。

dim1_转换

默认值为 什么都没有

X维度转换的全局状态。

dim2_转换

默认值为 什么都没有

Y维度转换的全局状态。

方向感

默认值为 1

的旋转方向。 可以是-1(顺时针)或1(逆时针)。

固定;固定

默认值为 真的

控制在缩放和平移期间rmin是否保持固定。 (后者将通过将其设置为true来关闭。)

格兹

默认值为 -100

设置网格线的z值。 要将网格放置在图上方,请将其设置为1到8999之间的值。

哈林

默认值为 :中心

场景在其建议的边界框中的水平对齐.

身高

默认值为 什么都没有

景的高度设置。

正常化_theta_ticks

默认值为 真的

设置所显示的θ刻度是否归一化为-2pi至2pi范围。 如果没有,限制如(2pi,4pi)将显示为该范围。

r_translation_button

默认值为 老鼠。对

设置鼠标按钮,以便在r方向上平移绘图。

[医]放射素

默认值为 自动的

在极坐标的原点设置半径,使得 r_out=r_in-radius_at_origin. 可以设置为 自动的 以匹配rmin。 请注意,这将影响绘制对象的形状。

[医]劳托利米特马金

默认值为 (0.05, 0.05)

在r方向上添加到autolimits的相对边距。

reset_axis_定向

默认值为 错误

设置在重置轴时是否重置轴方向(使用axis_rotation_button更改)。 如果设置为false,则限制将重置。

复位按钮

默认值为 键盘。left_control和鼠标。左图

设置用于重置轴视图的按钮或按钮组合。 (这应该与兼容 [医]受压.)

[医]角色

默认值为 继承(scene,(:Axis,:xgridcolor),(:black,0.5))

的颜色 r 网格。

[医]格里德斯特尔

默认值为 inherit(scene,(:Axis,:xgridstyle),nothing)

的linestyle r 网格。

[医]可分割的

默认值为 继承(scene,(:Axis,:xgridvisible),true)

控制如果 r 格可见。

rgridwidth

默认值为 继承(scene,(:Axis,:xgridwidth),1)

的线宽 r 网格。

[医]驯鹿

默认值为 (:起源,没有)

极坐标的径向极限。

[医][医][医][医][医]

默认值为 继承(scene,(:Axis,:xminorgridcolor),(:black,0.2))

的颜色 r 次要网格。

[医]格里德斯特尔

默认值为 inherit(scene,(:Axis,:xminorgridstyle),nothing)

的linestyle r 次要网格。

[医]可分割的

默认值为 继承(scene,(:Axis,:xminorgridvisible),false)

控制如果 r 次要网格可见。

rminorgridwidth

默认值为 继承(scene,(:Axis,:xminorgridwidth),1)

的线宽 r 次要网格。

[医]主动脉瓣

默认值为 0.0

轴脊柱上r小蜱的对齐

[医]角色

默认值为 :黑色

R小蜱的蜱颜色

[医]扁桃体

默认值为 间隔(2)

未成年人的说明符 r 蜱虫。

[医]小尺寸

默认值为 3.0

R小蜱的蜱虫大小

[医]可分割的

默认值为 错误

控制r轴上的小刻度是否可见

[医]宽度

默认值为 1.0

R小刻度的刻度宽度

[医]标记

默认值为 0.0

Rtick标记相对于轴脊的对齐方式(0=out,1=in)。

[医]扁桃体

默认值为 自动的

以弧度为单位的角度 r 蜱被打印。

[医]彩色

默认值为 RGBf(0,0,0)

Rick标记的颜色。

[医]rtickformat

默认值为 麦琪自动的

的格式化程序 r 蜱虫

[医]彩色

默认值为 inherit(scene,(:Axis,:xticklabelcolor),inherit(scene,:textcolor,:black))

的颜色 r 刻度标签。

[医][医]

默认值为 inherit(scene,(:Axis,:xticklabelfont),inherit(scene,:font,Makie.defaultfont()))

的字体 r 刻度标签。

[医][医][医][医][医]

默认值为 4.0

填充的 r 蜱标签。

[医]脱氧核糖核酸

默认值为 自动的

设置的旋转 r 刻度标签。

选项:

  • :径向 根据标签出现的角度旋转标签

  • :水平 将标签保持在水平方向

  • :对齐 根据标签出现的角度旋转标签,但保持标签向上和接近水平

  • 自动的 用途 :水平 当theta限制跨度>1.9pi和 :对齐 否则的话

  • ::真实 将标签旋转设置为特定值

[医]大小

默认值为 inherit(scene,(:Axis,:yticklabelsize),inherit(scene,:fontsize,16))

的字体大小 r 刻度标签。

[医]彩色

默认值为 自动的

的轮廓的颜色 r 蜱虫。 默认情况下,这使用背景颜色。

[医]激流

默认值为 0.0

的轮廓的宽度 r 蜱虫。 将其设置为0将删除轮廓。

[医]可分割的

默认值为 继承(scene,(:Axis,:xticklabelsvisible),true)

控制如果 r 蜱是可见的。

ricks,ricks

默认值为 直线(4)

径向的说明符(r)蜱,类似于 xicks,xicks 为法线轴。

[医]大小

默认值为 5.0

Rtick标记的大小。

ricksmirrored的

默认值为 错误

如果设置为真且theta范围低于2pi,则在极坐标中镜像r滴答到另一侧。

可分割的,可分割的

默认值为 错误

控制rtick标记是否可见。

[计]宽度

默认值为 1.0

Rtick标记的宽度。

rzoomkey的

默认值为 键盘。r

设置用于限制缩放到r方向的键。 可以设置为 真的 要始终限制缩放或 错误 来禁用交互。

[医]左旋锁

默认值为 错误

控制是否阻止通过交互式缩放调整rlimits。

采样密度

默认值为 90

曲线采样的密度。 (网格线,脊柱线,剪辑)

[医]纺色

默认值为 :黑色

脊柱的颜色。

旋转泳

默认值为 什么都没有

脊柱的linestyle。

[医]可分割的

默认值为 真的

控制脊柱是否可见。

纺锤形

默认值为 2

脊柱的宽度。

告诉我们

默认值为 真的

控制父布局是否可以调整到此元素的高度

告诉宽度

默认值为 真的

控制父布局是否可以调整到此元素的宽度

theta_0

默认值为 0.0

极坐标中(1,0)的角偏移量。 这使轴旋转。

theta_as_x

默认值为 真的

控制极坐标变换的参数顺序。 如果 theta_as_x=真 为(θ,r),否则为(r,θ)。

theta_translation_按钮

默认值为 老鼠。对

设置鼠标按钮以向theta方向平移绘图。 请注意,这可以与 radial_translation_button.

[医]马尔金

默认值为 (0.05, 0.05)

在theta方向上添加到autolimits的相对边距。

[医]颜色

默认值为 继承(scene,(:Axis,:ygridcolor),(:black,0.5))

的颜色 西塔 网格。

[医]格里德式

默认值为 inherit(scene,(:Axis,:ygridstyle),nothing)

的linestyle 西塔 网格。

n.可分的,可分的

默认值为 继承(scene,(:Axis,:ygridvisible),true)

控制如果 西塔 格可见。

[医]宽度

默认值为 继承(scene,(:Axis,:ygridwidth),1)

的线宽 西塔 网格。

n.限制,限制

默认值为 (0.0,2pi)

极坐标的角度限制。 (0.0,2pi)结果是一个完整的圆。 (无,无)导致基于情节限制选择的限制。

[医][医][医][医][医]

默认值为 继承(scene,(:Axis,:yminorgridcolor),(:black,0.2))

的颜色 西塔 次要网格。

[医]纳米网格

默认值为 inherit(scene,(:Axis,:yminorgridstyle),nothing)

的linestyle 西塔 次要网格。

[医]可分割的

默认值为 继承(scene,(:Axis,:yminorgridvisible),false)

控制如果 西塔 次要网格可见。

[医]宽度

默认值为 继承(scene,(:Axis,:yminorgridwidth),1)

的线宽 西塔 次要网格。

[医]主动脉瓣

默认值为 0.0

轴棘上θ小蜱的排列

[医]纳米角色

默认值为 :黑色

两个小蜱的蜱颜色

[医]皮质类固醇

默认值为 间隔(2)

未成年人的说明符 西塔 蜱虫。

[医]皮质类固醇

默认值为 3.0

Theta小蜱的蜱虫大小

[医]可分割的

默认值为 错误

控制theta轴上的小刻度是否可见

[医]宽度

默认值为 1.0

Theta小蜱的蜱虫宽度

[医]标记

默认值为 0.0

Θ刻度线相对于轴心的对齐(0=out,1=in).

[医]色谱

默认值为 RGBf(0,0,0)

Θ刻度线的颜色。

[医]格式

默认值为 麦琪自动的

的格式化程序 西塔 蜱虫。

[医]色谱

默认值为 inherit(scene,(:Axis,:yticklabelcolor),inherit(scene,:textcolor,:black))

的颜色 西塔 刻度标签。

[医][医]

默认值为 inherit(scene,(:Axis,:yticklabelfont),inherit(scene,:font,Makie.defaultfont()))

的字体 西塔 刻度标签。

thetaticklabelpad

默认值为 4.0

填充的 西塔 蜱标签。

[医]大小

默认值为 inherit(scene,(:Axis,:xticklabelsize),inherit(scene,:fontsize,16))

的字体大小 西塔 刻度标签。

thetaticklabelstrokecolor

默认值为 自动的

的轮廓的颜色 西塔 蜱虫。 默认情况下,这使用背景颜色。

thetaticklabelstrokewidth的

默认值为 0.0

的轮廓的宽度 西塔 蜱虫。 将其设置为0将删除轮廓。

[医]可分割的

默认值为 继承(scene,(:Axis,:yticklabelsvisible),true)

控制如果 西塔 蜱是可见的。

thaticks的

默认值为 AngularTicks(180/pi,"°")

角的说明符(西塔)蜱,类似于 yticks 为法线轴。

[医]大小

默认值为 5.0

Theta刻度线的大小。

[医]被破坏的

默认值为 错误

如果设置为true且rmin>0,则将θ滴答镜像到极坐标的另一侧。

n.可分割的,可分割的

默认值为 错误

控制theta刻度线是否可见。

[医]宽度

默认值为 1.0

Theta刻度线的宽度。

n.钥匙,钥匙

默认值为 键盘。t

设置用于将缩放限制为theta方向的键。 可以设置为 真的 要始终限制缩放或 错误 来禁用交互。

n.锁,锁

默认值为 真的

控制是否阻止通过交互式缩放调整thetalimits。

标题

默认值为 ""

情节的标题

[医]标题栏

默认值为 :中心

标题的对齐方式。 可以是任何 :中心, :左,或 :对.

[医]针状色

默认值为 inherit(scene,(:Axis,:titlecolor),inherit(scene,:textcolor,:black))

标题的颜色。

蒂特尔丰特

默认值为 inherit(scene,(:Axis,:titlefont),inherit(scene,:font,Makie.defaultfont()))

标题的字体。

[医]滴定管

默认值为 继承(scene,(:Axis,:titlesize),map((x->begin x/2 end),inherit(scene,:fontsize,16)))

标题和轴顶部之间的间隙

[医]针状物

默认值为 继承(scene,(:Axis,:titlesize),map((x->begin 1.2x end),inherit(scene,:fontsize,16)))

标题的字体大小。

[医]可分性

默认值为 继承(scene,(:Axis,:titlevisible),true)

控制标题是否可见。

n.英勇,英勇

默认值为 :中心

场景在其建议的边界框中的垂直对齐.

阔度

默认值为 什么都没有

景的宽度设置。

[医]缩放速度

默认值为 0.1

设置基于滚动的缩放速度。 将其设置为0有效地禁用缩放。