如何控制gnuplot中上划线的长度?
How to control the length of overline in gnuplot?
我正在 gnuplot 中绘制图表,我需要在我的 y 轴标签上加一个横条来表示流体中的轴向应力。我正在为我的 y 轴标签使用以下命令。
set ylabel "~{/Symbol r}u'u'}{0.8—} / {/Symbol t}_w"
现在,即使我使用的是 em 破折号,条的长度也太小并且没有覆盖整个分子。这里的条表示平均,所以我需要它足够长以覆盖整个 numerator.I 更喜欢 png 输出,但我对 eps、pdf 等持开放态度
以下不是很好,但也许足够了...
这取决于字体和终端是否会得到连续的线。对我来说,它适用于终端 pngcairo
但不适用于 png
(错误:gdImageStringFT: No character set found while printing string r with font Symbol
)。 pdfcairo
会给出不同的结果,其他终端可能也是如此。
代码:
### overprint
reset session
set term pngcairo
set output "SO_9.png"
set label 1 at graph 0.3,0.9 font ",20"
set label 1 "~{/Symbol r }{.8—}~{ u' }{.8—}~{ u' }{.8—} / {/Symbol t}_w"
set label 2 at graph 0.3,0.7 font "Serif,20"
set label 2 "~{/Symbol r }{.8—}~{ u' }{.8—}~{ u' }{.8—} / {/Symbol t}_w"
set label 3 at graph 0.3,0.5 font "Arial,20"
set label 3 "~{/Symbol r }{.8—}~{ u' }{.8—}~{ u' }{.8—} / {/Symbol t}_w"
set label 4 at graph 0.3,0.3 font "Sans,20"
set label 4 "~{/Symbol r }{.8—}~{ u' }{.8—}~{ u' }{.8—} / {/Symbol t}_w"
plot x
set output
### end of code
结果:
使用 Symbol 字体是处理非 ASCII 字符的 PostScript 限制的历史遗留问题。除非您使用 PostScript 输出,否则应该不再需要它了。
现在首选的方法是使用 UTF8 字符编码并输入所需的序列,而无需更改字体。你想要的具体效果有点棘手,因为最简单的获得扩展水平条的方法是一堆下划线,但下划线是标记字符所以你需要用反斜杠将它转义并将字符串放在单引号而不是双引号中引号。然后,因为您使用的是单引号,所以您需要使用与单引号不同的主要字符,或者也转义 "single quote but really its a prime"。
我会将此序列用于通用(非 LaTeX、非 PostScript)gnuplot 终端:
set title '~{ρu´u´}{1.5\_\_\_\_\_} / τ_w'
plot x
这是5个字符和5个下划线叠加1.5个字符高度的增强文本标记序列。
如果您愿意使用 Latex 终端,那么我建议使用 tikz 生成 pdf 输出。这是等效的:
set term tikz standalone size 5in,0.5in
set output 'foo.tex'
set title '$\overline{\rho u^\prime u^\prime} / \tau_w$'
plot x
同样最好使用单引号而不是双引号。然后输出由 pdflatex foo
渲染。
我正在 gnuplot 中绘制图表,我需要在我的 y 轴标签上加一个横条来表示流体中的轴向应力。我正在为我的 y 轴标签使用以下命令。 set ylabel "~{/Symbol r}u'u'}{0.8—} / {/Symbol t}_w"
现在,即使我使用的是 em 破折号,条的长度也太小并且没有覆盖整个分子。这里的条表示平均,所以我需要它足够长以覆盖整个 numerator.I 更喜欢 png 输出,但我对 eps、pdf 等持开放态度
以下不是很好,但也许足够了...
这取决于字体和终端是否会得到连续的线。对我来说,它适用于终端 pngcairo
但不适用于 png
(错误:gdImageStringFT: No character set found while printing string r with font Symbol
)。 pdfcairo
会给出不同的结果,其他终端可能也是如此。
代码:
### overprint
reset session
set term pngcairo
set output "SO_9.png"
set label 1 at graph 0.3,0.9 font ",20"
set label 1 "~{/Symbol r }{.8—}~{ u' }{.8—}~{ u' }{.8—} / {/Symbol t}_w"
set label 2 at graph 0.3,0.7 font "Serif,20"
set label 2 "~{/Symbol r }{.8—}~{ u' }{.8—}~{ u' }{.8—} / {/Symbol t}_w"
set label 3 at graph 0.3,0.5 font "Arial,20"
set label 3 "~{/Symbol r }{.8—}~{ u' }{.8—}~{ u' }{.8—} / {/Symbol t}_w"
set label 4 at graph 0.3,0.3 font "Sans,20"
set label 4 "~{/Symbol r }{.8—}~{ u' }{.8—}~{ u' }{.8—} / {/Symbol t}_w"
plot x
set output
### end of code
结果:
使用 Symbol 字体是处理非 ASCII 字符的 PostScript 限制的历史遗留问题。除非您使用 PostScript 输出,否则应该不再需要它了。
现在首选的方法是使用 UTF8 字符编码并输入所需的序列,而无需更改字体。你想要的具体效果有点棘手,因为最简单的获得扩展水平条的方法是一堆下划线,但下划线是标记字符所以你需要用反斜杠将它转义并将字符串放在单引号而不是双引号中引号。然后,因为您使用的是单引号,所以您需要使用与单引号不同的主要字符,或者也转义 "single quote but really its a prime"。
我会将此序列用于通用(非 LaTeX、非 PostScript)gnuplot 终端:
set title '~{ρu´u´}{1.5\_\_\_\_\_} / τ_w'
plot x
这是5个字符和5个下划线叠加1.5个字符高度的增强文本标记序列。
如果您愿意使用 Latex 终端,那么我建议使用 tikz 生成 pdf 输出。这是等效的:
set term tikz standalone size 5in,0.5in
set output 'foo.tex'
set title '$\overline{\rho u^\prime u^\prime} / \tau_w$'
plot x
同样最好使用单引号而不是双引号。然后输出由 pdflatex foo
渲染。