Gnuplot 多图 : Convenient method for creating more complex layouts

标签 gnuplot

我想用 gnuplot 放置几幅图通过以下方式:

 +------------------------+
 |plot1                   |
 |                        |
 +------------------------+
 +----------++------------+
 |plot2     ||plot3       |
 |          ||            |
 +----------++------------+
 +----------++------------+
 |plot4     ||plot5       |
 |          ||            |
 +----------++------------+

简单的 nxm 布局可以通过 set multiplot layout n,m 实现(请参阅这些demos以获取官方网站上的说明)。

matplotlib 提供了更高级的可能性,如您在文档中看到的:Customizing Location of Subplot Using GridSpec .

在 gnuplot 中我使用了 set originset size为了达成这个。然而,它相当麻烦,并且当您发现之后想要更改布局时需要重新计算尺寸和位置。

备注1: 通常,将边距设置为固定大小以获得正确的绘图大小也很有用。通过改变 xlabel 等进行自动计算将使实现正确布局变得更加困难。

备注2:代替origin/size gnuplot 使用 set [lrbt]margin <> at screen 提供了另一种可能性设置绘图边界。用户必须确保标题和标签有足够的空间(请参阅 demo )。仍然不是完美的解决方案,但有时更方便。

是否有可能我不知道或者可能存在创建布局的工具?

最佳答案

评论中提到的给定布局的最小工作示例。

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:

enter image description here

但是,我仍然对解决一般问题的其他方法感兴趣。

关于Gnuplot 多图 : Convenient method for creating more complex layouts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15904719/

相关文章:

c++ - Gnuplot 和 std::filesystem::remove

gnuplot - 增加图表的宽度以避免图例框重叠

plot - Gnuplot 用图像绘制二维矩阵,想要为每个单元格绘制边框

c - 哪个会更快

gnuplot - 如何在 GNUplot 中绘制 3 列?

matlab - 在 Octave 的曲面图顶部绘制 3D 线

gnuplot - 计算后绘制 GNUplot 图

gnuplot - 如何在 gnuplot 的 eps 和 pdf 终端中实现输出的一致性?

GNUPlot:更改轴标签

gnuplot - 在 Gnuplot 的线图中显示特定值的标记