北极星,北极星
|
该页面正在翻译中。 |
该 北极星,北极星 是在极坐标中给出的数据的轴,即半径和角度。 它目前是一个实验性的特性,这意味着某些功能可能丢失或损坏,并且 北极星,北极星 是(更多)开放的突破性变化。
密谋成北极星
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
北极星限制
默认情况下,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
你可以通过调整来进一步调整北极星的方向 斧头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
请注意,默认情况下,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
请注意,为了看到网格,我们需要调整它的深度 斧头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
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
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
互动性
该 北极星,北极星 目前实现缩放,平移和重置。 缩放是通过滚动实现的, 斧头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范围。 9000 和 10_000 或通过禁用剪切 剪辑/剪辑 属性。
作为参考,使用的z值 北极星,北极星 是 阿宝网格深度[]=8999 对于网格线,9000用于剪辑多边形,9001用于刺,9002用于刻度标签。
径向偏移
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
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
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
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
径向剪切
默认半径 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
属性
[医][医]
默认值为 inherit(scene,(:Axis,:xticklabelfont),inherit(scene,:font,Makie.defaultfont()))
的字体 r 刻度标签。
[医]脱氧核糖核酸
默认值为 自动的
设置的旋转 r 刻度标签。
选项:
-
:径向根据标签出现的角度旋转标签 -
:水平将标签保持在水平方向 -
:对齐根据标签出现的角度旋转标签,但保持标签向上和接近水平 -
自动的用途:水平当theta限制跨度>1.9pi和:对齐否则的话 -
::真实将标签旋转设置为特定值
[医][医]
默认值为 inherit(scene,(:Axis,:yticklabelfont),inherit(scene,:font,Makie.defaultfont()))
的字体 西塔 刻度标签。
[医]滴定管
默认值为 继承(scene,(:Axis,:titlesize),map((x->begin
x/2
end),inherit(scene,:fontsize,16)))
标题和轴顶部之间的间隙