如何在gnuplot中为不同图例设置差异化字体(斜体、Times Roman)?
在gnuplot中给图例设置不同字体的解决方法
嘿,这个问题我刚好碰到过!gnuplot其实完全支持给单个图例项单独设置字体,不用让所有图例都用同一种样式。下面给你两种亲测有效的方法,根据你的gnuplot版本和终端类型选就行:
方法一:开启Enhanced文本模式(兼容大多数版本)
gnuplot的Enhanced模式支持嵌入TeX-like的格式指令,能直接在图例文本里指定字体和样式。步骤如下:
- 首先确保终端开启Enhanced模式(比如常用的pngcairo、wxt终端都支持):
set terminal pngcairo enhanced font "Arial,10" # 这里设置全局基础字体,可选 set output "custom_legend.png"
- 绘图时,在
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




