我想放置几块地块gnuplot http://www.gnuplot.info通过以下方式:
+------------------------+
|plot1 |
| |
+------------------------+
+----------++------------+
|plot2 ||plot3 |
| || |
+----------++------------+
+----------++------------+
|plot4 ||plot5 |
| || |
+----------++------------+
简单的 nxm 布局可以通过以下方式实现set multiplot layout n,m
(参见这些demos http://gnuplot.sourceforge.net/demo/layout.html官方网站上有说明)。
matplotlib http://matplotlib.org提供了更高级的可能性,如您在文档中看到的:使用 GridSpec 自定义子图的位置 http://matplotlib.org/users/gridspec.html.
在 gnuplot 中我使用过set origin
and set size
为了达成这个。然而,它相当麻烦,并且当您发现之后想要更改布局时需要重新计算尺寸和位置。
备注1:通常,将边距设置为固定大小以获得正确的绘图大小也很有用。通过改变 xlabel 等进行自动计算将使实现正确布局变得更加困难。
备注2:代替origin/size
gnuplot 提供了另一种可能性set [lrbt]margin <> at screen
设置绘图边界。用户必须确保标题和标签有足够的空间(请参阅demo http://gnuplot.info/demo/margins.html)。仍然不是一个完美的解决方案,但有时更方便。
是否有可能我不知道或者可能存在创建布局的工具?
评论中提到的给定布局的最小工作示例。
set term pngcairo size 5.0in,6.0in
set output "test_layout.png"
ROWS=3
COLS=2
set multiplot layout ROWS,COLS upwards
plot sin(4*x) # plot 4
plot sin(5*x) # plot 5
plot sin(2*x) # plot 2
plot sin(3*x) # plot 3
set size 1,(1.0/ROWS)
plot sin(1*x) # plot 1:
unset multiplot
只要只有第一行(最后一行)不同,其他所有内容都遵循 nxm 方案,此解决方案就有效。但例如,您无法轻松地为第一行指定不同的高度。
$ gnuplot -d file.gp:
然而,我仍然对解决一般问题的其他方法感兴趣。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)