我正在尝试制作一个gnuplot脚本,该脚本将产生以下输出的副本-
我要合并的功能有:
1.多图显示从一个对称点到另一对称点的过渡-没问题
2. wxt终端中的Latex / MathJax标签-可能吗?
3.可以在两个符号的对称点之间切换-例如[00ζ]和
Z。4.分支的标记必须通过在脚本中手动插入坐标来完成。
如果您觉得还有其他功能,请发表评论。
为使答案标记为正确-请回答进行功能2和3的最佳方法。
关于2:否,在wxt终端中不能将LaTeX或MathJax用于标签。但这仅适用于交互部分。
在这种情况下,您可以使用utf8
和enhanced
至少获得正确的符号:
set encoding utf8
set termoption enhanced
set xlabel '[00ζ]'
set label at graph 0.5,0.5 'Σ_1(0)'
plot x
对于打印质量的图像,可以set terminal cairolatex pdf
使用LaTeX作为标签:
set terminal cairolatex pdf standalone
set output 'test.tex'
set bmargin 3
set xlabel '$[00\zeta]$'
set label at graph 0.5,0.5 '$\Sigma_1(0)$'
plot x
set output
system('pdflatex test.tex')
在这里,您必须注意使用单引号'
,否则必须转义一些字符。
关于3:没有在两个变体之间切换的“自动”方法,但是您当然可以将所有标签定义为字符串,然后在两个变体之间进行选择:
latex = 1
if (latex) {
xlabel = '$[00\zeta]$'
label1 = '$\Sigma_1(0)$'
} else {
xlabel = '[00ζ]'
label1 = 'Σ_1(0)'
}
set xlabel xlabel
set label 1 at graph 0.5,0.5 label1
通常,这是可行的,但是由于gnuplot并不知道LaTeX标签的确切宽度和高度,因此可能需要对标签位置进行一些微调(例如,offset
使用xlabel
,或使用其他位置)。在这种情况下,您可以定义整个命令并在以后调用它们:
latex = 1
if (latex) {
set_xlabel = 'set xlabel ''$[00\zeta]$'' offset 0,-1'
set_label1 = 'set label 1 ''$\Sigma_1(0)$'' at graph 0.5,0.5'
} else {
set_xlabel = 'set xlabel ''[00ζ]'' '
set_label1 = 'set label 1 ''Σ_1(0)'' at graph 0.5,0.5'
}
set macros
@set_xlabel
@set_label1
除了使用之外macros
,您还可以使用eval(set_xlabel)
,它允许您定义类似以下的函数:
set_label1(x,y) = sprintf('set label 1 ''$\Sigma_1(0)$'' at graph %f,%f', x, y)
eval(set_label1(0.5,0.5))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句