繁体   English   中英

gnuplot:在epslatex中减小轴数使轴标签在屏幕外消失

[英]gnuplot: making axes numbers smaller in epslatex makes my axes label disappear offscreen

我正在编写一个脚本,以在一列中生成三个图(使用多图和设置边距)。 它们都共享一个x轴,因此只需要在底部图上进行标记,但是它们具有单独的y轴。

我在gnuplot中使用epslatex终端生成带有乳胶标签和轴的图。 基本上,我需要轴上的数字使用比实际轴标签小的字体大小。 到目前为止,我一直在使用

reset

set term epslatex standalone color solid 10
set output 'myplot.tex'

set multiplot;

    #Common width for all three plots is set

    set lmargin at screen 0.15;
    set rmargin at screen 0.90;

    set format x ""; #Removes xlabels from plots without removing tic marks

    #First plot

    set tmargin at screen 0.98;
    set bmargin at screen 0.72;

            set ylabel '$Label Name 1$';
            set format y '\scriptsize{%g}';
            plot "mydata.dat" u 1:3 w l lt 1 lw 3

    #Second plot

    set tmargin at screen 0.70;
    set bmargin at screen 0.44;
            set ylabel '$Label Name 2$';
            set format y '\scriptsize{%g}';
            plot "mydata.dat" u 1:11 w l lt 2 lw 3

    #Third plot

    set tmargin at screen 0.42;
    set bmargin at screen 0.16;
            set xlabel 'Common Label Name'; 
            set format x '\scriptsize{%g}'; # Here I reset the x axis so it shows on 
                                              this plot
            set ylabel 'Label Name 3';
            set format y '\scriptsize{%g}';
            plot "mydata.dat" u 1:5 w l lt 3 lw 3

unset multiplot;

如您所见,我使用乳胶将数字设置为不同的大小,特别是\\ scriptsize。 对于最后的xlabel,一切正常。 数字以较小的字体显示,并且xlabel以常规尺寸打印在其下方。 但是,对于ylabel,数字DO看起来较小,但实际标签名称未显示在绘图上。

最初我虽然并没有以某种方式得到承认,但是当我尝试使用页边距时,我发现如果将lmargin移到页面中间,则ylabel会重新出现! 看起来,无论出于何种原因,它们都只是与轴本身相距很远。

我试过设置带有偏移量的标签,但这并没有带来喜悦。

出现这种现象的原因是gnuplot不知道,使用LaTeX语法的tic最终看起来将如何。 程序尝试估计tic标签长度,并相应地调整标签位置。

如果格式为'\\scriptsize %g' ,则tic标签似乎很大:

set terminal epslatex standalone 
set output 'label-offset.tex'
set format y '\scriptsize %g'
set ylabel 'ylabel'
plot x

set output
system('latex label-offset.tex && dvips label-offset.dvi && ps2pdf label-offset.ps')

Gnuplot版本4.2.6根本不考虑\\scriptsize ,您需要很大的偏移量来补偿它: set ylabel 'ylabel' offset 14

由于versoin 4.4的行为更好,因此您需要一个低得多的偏移量: set ylabel 'ylabel' offset 4

一些说明:

  • \\scriptsize是一个开关,不带参数。 考虑set xlabel '\\scriptsize{scriptsize} normal?' 为了限制其效果,请在文本周围加上方括号,例如{\\scriptsize %g} 但这并不是tic标签的必要条件,因为它们总是放在括号中。

  • 要使用斜体文字,请使用\\textit{label name 1} ,而不要使用带有$符号的数学模式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM