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

如何在gnuplot中配置刻度标签格式,将eX替换为·10^X形式?

在Gnuplot中实现自定义混合刻度标签格式

要实现你需要的「优先普通小数格式,超出范围则用·10<sup>指数</sup>形式的科学计数」效果,可以通过Gnuplot的自定义字符串函数来实现,完美替代单一的%g或%t^{%T}格式:

  • 先定义一个智能判断刻度格式的函数,逻辑和%g一致,但替换科学计数的"e"为目标格式:
# 自定义刻度标签函数:优先普通小数,范围外使用指定科学计数格式
custom_tick_label(x) = (abs(x) >= 1e-4 && abs(x) <= 1e4) ? sprintf("%g", x) : sprintf("%g·10^{%d}", x/10**floor(log10(abs(x))), floor(log10(abs(x))))
  • 其中1e-4和1e4是触发科学计数的阈值,可以根据你的数据范围调整;

  • %g会自动控制小数位数,也可以换成%.1f这类固定小数位数的格式。

  • 将函数应用到坐标轴上:

set format x "%{custom_tick_label(%x)}"
set format y "%{custom_tick_label(%y)}"
  • 终端适配说明:
    • 如果使用支持TeX渲染的终端(如epslatex、pdfcairo),^{%d}会自动渲染为上标;
    • 如果需要HTML格式的<sup>标签,只需把函数里的^{%d}替换为<sup>%d</sup>即可,但要确保终端支持HTML解析。

这个方案既保留了%g的自动格式选择能力,又完全替换了科学计数的显示样式,符合你提出的格式要求。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:33:23