Julia 中的 Makie:保留我的轴标签,但隐藏刻度线数字

问题描述 投票:0回答:1

我正在尝试学习如何与 Julia 一起使用 Makie,到目前为止我只使用过 Winston。 我正在制作一个带有纬度和经度轴的图表,我只想在轴上显示它们的值,而不是 makie 在所有轴上放置的标准 1,5 和 10。我也想给我的轴贴上标签,但我不知道如何将两者分开——去掉数字并保留文字。我正在 jupyter 笔记本中执行此操作。

我正在导入带有多维变量的 netcdf 数据。为此,我已经将深度变量隔离到一维。我试过了:

using NetCDF
using CairoMakie
using ColorSchemes

fig, axis, p=heatmap(lon1, lat1, h; labels=true, colormap=:rainbow_bgyrm_35_85_c71_n256)
Colorbar(fig[:, end+1], p, label="meters")
ax=Axis(fig[1,1], ylabel ="latitiude", xlabel="longitude", title="depth map",
leftspinevisible=false, bottomspinevisible=false, ticklabelvisible=false)
ax.aspect = 0.5
colsize!(fig.layout, 1, Aspect(1, 0.5))
display(fig)

我得到的图表是这样的: (https://i.stack.imgur.com/N2Npi.png) 在轴上'是我的纬度/经度数字,我不想要的makie轴数字,以及我想要的标签。

注意:无论有没有代码,我都会得到完全相同的图形

leftspinevisible=false, bottomspinevisible=false, ticklabelvisible=false
在我的轴命令中。

接下来我尝试了:

hidedecorations!.(ax)
display(fig)

只去掉了所有的makie标签——数字和标签:(https://i.stack.imgur.com/rNTmf.png) 我还尝试添加条件:

ticklabels=false
在隐藏装饰代码中,在“ax”之后,仍在括号中。

我也已经阅读了 Makie 网页上标签和轴操作的文档。

如何保留 x/y 标签,同时删除其他数字?

julia heatmap axis axis-labels makie.jl
1个回答
0
投票

您会看到双刻度和标签,因为您要在调用

heatmap
时创建的轴顶部的图形中添加一个新轴。要对已创建的轴进行修改,您可以写入返回的字段
axis
:

using CairoMakie
x = collect(1:10)
y = collect(1:10)
z = rand(10, 10)
fig, axis, p = heatmap(x, y, z)

axis.xlabel = "longitude"
axis.ylabel = "latitude"
axis.xticks = [2,3,5,7]
axis.yticks = 1:2:10

display(fig)

另一种选择是首先在图中的位置创建具有所需属性的轴,然后使用

heatmap!
方法(带有感叹号)在该轴上绘制热图:

using CairoMakie
fig = Figure()
axis = Axis(fig[1,1],
    xlabel = "longitude",
    ylabel = "latitude",
    xticks = [2,3,5,7],
    yticks = 1:2:10)

x = 1:10
y = 1:10
z = rand(10, 10)
heatmap!(axis, x, y, z)

display(fig)

这些产生大致相同的数字:

© www.soinside.com 2019 - 2024. All rights reserved.