You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在gnuplot中为不同图例设置差异化字体(斜体、Times Roman)?

在gnuplot中给图例设置不同字体的解决方法

嘿,这个问题我刚好碰到过!gnuplot其实完全支持给单个图例项单独设置字体,不用让所有图例都用同一种样式。下面给你两种亲测有效的方法,根据你的gnuplot版本和终端类型选就行:

方法一:开启Enhanced文本模式(兼容大多数版本)

gnuplot的Enhanced模式支持嵌入TeX-like的格式指令,能直接在图例文本里指定字体和样式。步骤如下:

  1. 首先确保终端开启Enhanced模式(比如常用的pngcairo、wxt终端都支持):
set terminal pngcairo enhanced font "Arial,10"  # 这里设置全局基础字体,可选
set output "custom_legend.png"
  1. 绘图时,在title里用{/FontName 文本}语法指定字体,斜体可以用对应字体的Italic变体:
plot sin(x) title "{/Times-Roman 正弦曲线}", \
     cos(x) title "{/Times-Italic 余弦曲线}"  # 斜体的Times字体

如果只是需要斜体(不换字体),也可以用简化的*{文本}*语法:

plot cos(x) title "*余弦曲线*"  # 基于全局字体的斜体样式

小提示:如果不确定系统里的字体名称,可以用show font命令查看gnuplot能识别的字体列表,不同系统的字体命名可能略有差异(比如有的系统里Times Roman叫Times New Roman)。

方法二:直接给单个图例指定textfont(gnuplot 5.0+适用)

如果你用的是gnuplot 5.0及以上版本,有更直接的方式——在每个曲线的title后面加上textfont选项,单独设置该图例的字体:

set terminal pngcairo font "Arial,10"
set output "custom_legend2.png"

plot sin(x) title "正弦曲线" textfont "Times-Roman,10", \
     cos(x) title "余弦曲线" textfont "Times-Italic,10"

这种方法不需要开启Enhanced模式,语法更直观,适合新版本用户。

注意事项

  • 不是所有终端都支持自定义字体,比如老旧的x11终端可能限制较多,推荐用pngcairo、wxt或者qt终端。
  • 如果字体显示异常,先检查字体是否真的安装在你的系统里,或者用show font确认gnuplot能识别它。

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

火山引擎 最新活动