如何在CairoMakie等高线图中设置自定义标签替代数值
CairoMakie 自定义等高线标签解决方案
要替换等高线的默认数值标签为自定义LaTeX格式文本,只需修改contour函数的labels参数,将其设为你定义的customLabels数组即可,具体代码如下:
using CairoMakie using LaTeXStrings function energyContour(; N=2, h=1, EsmA = 0, a=1) E(k) = EsmA + 2*h*( cos( k[1]*a ) + cos(k[2]*a) ) testX = [ pi/a*j/N for j in -N:N] xx = [ [ testX[i] , testX[j] ] for i in 1:length(testX), j in 1:length(testX)] Es = E.(xx) levels = [ EsmA+2*h , EsmA+h , EsmA , EsmA-2*h ] customLabels = [L"E-A+2h" , L"E-A + h", L"E-A ", L"E-A -2h" ] # 替换默认数值标签为自定义LaTeX标签 fig, ax, ct = contour(testX, testX, Es; levels=levels, labels=customLabels) # 可选:统一坐标轴为LaTeX风格(按需添加) ax.xlabel = L"k_x" ax.ylabel = L"k_y" return fig end # 生成并显示图表 fig = energyContour() display(fig)
关键说明
contour函数的labels参数支持传入与levels长度完全匹配的标签数组,数组中每个元素对应对应层级的自定义标签。- 由于
customLabels使用LaTeXStrings库定义,CairoMakie会自动渲染这些数学公式格式的标签,替代原本显示的数值(如[-2,0,1,2])。 - 若LaTeX标签渲染异常,需确保系统已安装LaTeX环境(如TeX Live、MiKTeX),CairoMakie依赖该环境解析LaTeX文本。
内容的提问来源于stack exchange,提问作者Mstislav Keldysh
相关产品推荐
相关产品推荐

