瞬间集分享 http://blog.sciencenet.cn/u/yusufma 激光,光谱学,生物医学光子学

博文

谈谈gnuplot(十一):enhanced 文本模式

已有 23573 次阅读 2011-10-22 03:46 |个人分类:开源软件|系统分类:科研笔记|关键词:学者| 数学, 软件, Gnuplot, 绘图, enhanced

我们之前的图像里的 titlexlabel 等标签里用到的都是纯文本字符串,如果我们希望输出稍复杂一点的文字标签,例如字母加角标,我们可以使用 enhanced 文本模式。

gnuplot 里面好多 terminal 都支持 enhanced 模式,使用方法就是在 set terminal 的时候,在后面加上 enhanced 参数。enhanced 模式里有一些表达特殊含义的字符,利用这些字符可以构成一些比较复杂的文字输出。这些特殊字符主要包括:
  1. ^:表示后面的字符为上角标
  2. _:表示后面的字符为下角标
  3. @:表示后面的字符不占任何宽度
  4. &{"string"}:表示一段空白,空白的长度等于花括号内那段字符串所占宽度
  5. ~:表示后面的两个字符重叠打印(相当于打字机在同一位置打印两个字符);也可以在第二个字符前加上一个数字,表示第二个字符相对于第一个字符有一个竖直方向的移动,移动距离等于该数字乘以字符尺寸。
上面提到的“字符”,也可以是包含在花括号 {} 内的“字符串”。除了上面这些特殊标志,还可以临时改变字符(或字符串)的字体,方法是:
{/字体名=字体大小 字符}
下面我们看一些例子:
  • "a^x"

  • "a_x"

  • "a^b_{cd}"

    这里的上下角标没有对齐,因为上标 b 需要占一定宽度
  • "a^@b_{cd}"

    这里我们看到了 @ 的作用
  • "abc&{de}fg"

    这里 & 后面的字符没有显示,留出一段和这些字符同样宽度的空白
  • "~a{1.2\_}"

    注意这里的两个反斜杠。因为下横杠(_)是一个特殊字符,需要在前面加反斜杠 来表示它本来的意义,而反斜杠本身也是一个特殊字符,需要在它前面再加一个反斜杠。我们在第四讲里谈到过双引号和单引号的区别。如果我们在这里用单引号而不是双引号,那么只需要一个反斜杠就可以了。这里的 1.2 表示后面的字符(_)向上移动 1.2 个字符大小的距离。
  • {/Symbol abc}abc

    这里第一个花括号里的 abc 使用了 Symbol 字体,而后面括号外的 abc 使用的是默认字体。注意字体名称前的斜杠方向。这里我们看到,Symbol 字体里的英文字母对应显示的是希腊字母。Symbol 字体里还包括了一些其它符号,下面是完整的 Symbol 字体列表:

上面图中显示的是 Symbol 字体对应的16进制代码。例如上面例子中的希腊字母 αβχ,对应的16进制代码分别为 61、62、63,转换为8进制代码就是 141、142、143。在 gnuplot 里,我们可以直接用字符的8进制代码表示这个字符,所以我们也可以用 {/Symbol 141142143} 来表示 αβχ。

根据上面的内容,下面是一个综合起来的例子:
gnuplot> set term wxt enhanced
gnuplot> set xlabel "X"
gnuplot> set ylabel "Y"
gnuplot> set xrange [0:10]
gnuplot> set xtics 0,1,10
gnuplot> unset key
gnuplot> set title "f(x) = {/Symbol=16 326}~{x^@3}{1.1{/Symbol=16 276}}&{aa}函数图像"
gnuplot> plot sqrt(x**3)


虽然利用 enhanced 模式也能显示一些简单的数学表达式,但是对于稍微复杂一点的公式来说,显示效果无法令人满意。要在gnuplot里显示数学公式,终极方案还是要用 LaTeX。



https://m.sciencenet.cn/blog-373392-499627.html

上一篇:谈谈gnuplot(十):输出 pdf 和 png 图片
下一篇:谈谈gnuplot(十二):插入 LaTeX 公式

0

该博文允许注册用户评论 请点击登录 评论 (5 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-21 13:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部