【问题标题】:Gnuplot Expand Plot to Fill AreaGnuplot 扩展绘图以填充区域
【发布时间】:2016-01-30 09:38:34
【问题描述】:

我正在为我的模拟制作视频,其中每一帧都是模拟的图片和图表。我正在使用 gnuplot 制作图表,我首先运行模拟以确定要使用的 x 和 y 范围,然后将范围硬编码到绘图脚本中。它工作得很好,但情节并没有用完整个表面,有大量的空白,情节只有总面积的 1/4 左右。有没有办法让情节扩大到更靠近边界的边缘,或者有办法控制情节的位置?

脚本:

set term postscript eps color enhanced "Helvetica" 36
set output 'image.eps'
set size ratio 0.8
set logscale x
set xlabel 'Time(Arb. Units)'
set xrange [10:100000]
set yrange [0:1.6]
set y2range [0:0.5]
set ylabel 'Absorption(%)'
set y2label 'Emission'
set format x '%.0e'
set xtics 10, 100, 100000
set key noautotitles
plot 'absorption.dat' axes x1y1 w lines lt 3 lw 5, 'emission.dat' axes x1y2 w lines lt 1 lw 5

结果如下:

我设置了一个灰色背景,这样你就可以看到浪费了哪些空间。

编辑:我也尝试过 png 终端,但这似乎使问题变得更糟。情节进一步缩小。我将脚本的前两行替换为:

set term png font Helvetica 36
set output 'image.png'

然后这就是结果:

【问题讨论】:

  • 在 png 中,您可能使用了太大的字体或太小的 png 图像。输入help png 获取所有选项
  • 我还建议发出命令 set ytics nomirror 以避免 y2 斧头上的虚假抽动
  • 默认png尺寸为640x480,我一般用set term png enhanced transparent crop size 1200,900

标签: gnuplot


【解决方案1】:

地块大小的计算涉及几件事情:

  1. 不同的终端有不同的默认画布大小。如果默认值不符合您的需要,请更改大小set terminal ... size ...

  2. 画布具有固定的纵横比(由终端大小设置给出),您使用set size ratio... 施加了一个额外的约束,它只影响绘图而不影响画布大小。所以,如果你需要这个尺寸比例,你必须让绘图画布适应它。

  3. 第三个参数是边距。由于 gnuplot 不完全知道终端将如何呈现标签,因此边距不能准确。您可以使用set bmargin ...(用于底部边距)手动设置边距,其他边距也可以等效地设置。

【讨论】:

    【解决方案2】:

    我建议使用接受crop 标志的终端 例如png, gif, jpeg 还有epscairo

    【讨论】:

    • 我在使用 png 终端时遇到了其他问题。由于某种原因,绘图的大小因我使用的终端而有很大不同。查看修改。
    • 是的,不同的驱动程序会产生不同的输出,部分原因是 gnuplot 是一个协作项目,并且依赖于并不总是使用相同结构的第三方库。此外,png 是光栅图像格式,而eps 是矢量图形:非常不同的方法。尽管如此,事情正在变得越来越好。
    猜你喜欢
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多