【问题标题】:gnuplot - alignment of horizontal key titles of different lengthgnuplot - 不同长度的水平键标题对齐
【发布时间】:2013-08-22 12:27:07
【问题描述】:

我在水平放置时难以对齐不同的关键标题,显然是由于标题的长度不同。

有两个短的情节标题(第 1 和第 4 个)和两个较长的标题(第 2 和第 3 个)它在最后两个标题之间留下了更大的差距(大概是因为它将它们之间的差距设置为相同的最大字符串长度) .我已经搜索过,但没有办法改变它。

一个简化的例子如下所示。任何建议或帮助将不胜感激。

set terminal postscript eps size 5.12,2.3 enhanced color "Helvetica" 12
set output 'example.eps'

set title 'Difficulty of Long and Short Title usage in Horizontal Keys' font "Helvetica, 20"

set key inside bottom center horizontal font "Helvetica, 20" width 1.8

set ylabel 'ylabel' font "Helvetica, 20" 
set xlabel 'xlabel' font "Helvetica, 20"  
set lmargin screen 0.10
set rmargin screen 0.95
set yrange [-1.5:1.5]

plot sin(x) title 'short', \
cos(x) title 'long title 1', \
-0.5 title 'long title 2', \
0.5 title 'short' w l ls 4

结果是:

【问题讨论】:

  • 我看不出有任何方法可以使用现有的set key 选项来解决这个问题。你在一个长标题和一个短标题之间有任何依赖关系吗?也许在左栏中有一个2x2 键(set key maxcols 2)和两个短键?
  • 非常感谢您的回复。不幸的是,我非常热衷于在实际情节中保持标题的顺序,并且更愿意将它们保持在一行中。这显然是一个美学问题,所以不是世界末日,但很高兴知道它是否可能。有什么解决方法吗?

标签: alignment gnuplot


【解决方案1】:

一种可能的解决方法是在multiplot 模式下使用两个不同的绘图命令生成前三个图形和最后一个图形:

set terminal postscript eps size 5.12,2.3 enhanced color "Helvetica" 12
set output 'example.eps'

set title 'Difficulty of Long and Short Title usage in Horizontal Keys' font "Helvetica, 20"

set ylabel 'ylabel' font "Helvetica, 20" 
set xlabel 'xlabel' font "Helvetica, 20"  
set lmargin screen 0.10
set rmargin screen 0.95
set yrange [-1.5:1.5]

set bmargin screen 0.15
set tmargin screen 0.9

set multiplot
set key horizontal font "Helvetica, 20" width 1.8 at graph 0.4, graph 0.1 center maxrows 1
plot sin(x) title 'short', \
     cos(x) title 'long title 1', \
     -0.5 title 'long title 2'

unset title
unset xlabel
unset ylabel
unset border
unset tics
set key horizontal font "Helvetica, 20" width 1.8 at graph 0.84, graph 0.1 center maxrows 1
plot 0.5 title 'short' w l ls 4
unset multiplot

但是,这需要一些调整:

  • 在第二个 plot 之前,您必须删除标题、标签、抽动和边框,否则由于抗锯齿不同,图形可能看起来参差不齐
  • 要获得相同的边距,您还必须设置固定的tmarginbmargin
  • 您必须手动定位键

上面的代码给你:

现在你必须判断它是否值得。

【讨论】:

    【解决方案2】:

    您可以使用svg 终端并通过在inkscape 上打开svg 文件来进行调整。

    【讨论】:

    • 或者使用 png 终端并使用光栅图形编辑器或 postscript,然后编辑源代码......你在开玩笑吧?
    猜你喜欢
    • 2011-01-26
    • 2014-05-27
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2020-10-22
    相关资源
    最近更新 更多