Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何控制gnuplot中的覆盖线长度?_Gnuplot - Fatal编程技术网

如何控制gnuplot中的覆盖线长度?

如何控制gnuplot中的覆盖线长度?,gnuplot,Gnuplot,我正在gnuplot中绘制一个图形,我需要在y轴标签上画一个条形图,表示流体中的轴向应力。我正在对y轴标签使用以下命令。 设置ylabel“~{/Symbol r}u'u'}{0.8-}/{/Symbol t}u w” 现在,即使我使用em-dash,条的长度太小,不能覆盖整个分子。这里的条表示平均值,所以我需要足够长的长度来覆盖整个分子。我更喜欢png输出,但我对eps、pdf等持开放态度。以下内容不太好,但可能足够了。。。 这取决于字体和终端是否会得到一条连续的线。对我来说,它适用于终端pn

我正在gnuplot中绘制一个图形,我需要在y轴标签上画一个条形图,表示流体中的轴向应力。我正在对y轴标签使用以下命令。 设置ylabel“~{/Symbol r}u'u'}{0.8-}/{/Symbol t}u w”


现在,即使我使用em-dash,条的长度太小,不能覆盖整个分子。这里的条表示平均值,所以我需要足够长的长度来覆盖整个分子。我更喜欢png输出,但我对eps、pdf等持开放态度。

以下内容不太好,但可能足够了。。。 这取决于字体和终端是否会得到一条连续的线。对我来说,它适用于终端
pngcairo
,但不适用于
png
(错误:
gdImageStringFT:打印带有字体符号的字符串r时未找到字符集)
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
结果:

### 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

使用符号字体是处理PostScript对非ascii字符限制的历史遗留问题。除非您使用的是PostScript输出,否则应该不再需要它

现在首选的方法是使用UTF8字符编码并输入所需的序列,无需更改字体。您想要的特定效果有点棘手,因为获取扩展水平条的最简单方法是一组下划线,但下划线是一个标记字符,因此需要使用反斜杠对其进行转义,并将字符串放在单引号中,而不是双引号中。然后,因为您使用的是单引号,所以您需要使用与单引号不同的素数字符,或者转义“单引号,但实际上它是素数”

我将对通用(非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
呈现输出。