You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 00:04:58