使用多重绘图一起绘制等高线图和曲线

时间:2015-01-14 20:59:19

标签: plot gnuplot

我正在尝试使用多色图在等高线图上叠加曲线,这是我的gnuplot脚本。

set term postscript enhanced color 'Times-Roman,24'

set output 'cimax_pmf.eps'
set encoding iso_8859_1

set nokey
set xlabel 'RC(\305)'
set xrange [0:12]
set yrange [0.2:1]
set ylabel 'c^2_{imax}'
set y2label 'PMF (kcal/mol)'
set y2range [-20:1]
set multiplot
set pm3d map interpolate 10,10
set view map
set isosamples 10  #increase resolution
set palette rgb 33,13,10   #rainbow color scheme

unset colorbox
splot[0:12][0.2:1] 'cisq_rrr_reduced.dat' u 1:2:3  notitle
unset map

plot[0:12] 'final_pmf.dat' u 1:2 w line lt 2 lw 2 notitle axis x1y2
unset multiplot

有一点要提到的是我有两个垂直的y轴,正如我的脚本中的“axis x1y2”所示。问题是在运行此脚本后,我发现第二个绘图未正确对齐第一个绘图。换句话说,它们具有不同的尺寸,并且它们的重叠似乎是有问题的。它看起来像本页第一个图中描述的问题 http://lowrank.net/gnuplot/plot3-e.html#5.10

但是我无法通过使用类似于该页面的脚本来解决这个问题。

感谢。

3 个答案:

答案 0 :(得分:1)

我对彼此相邻或相邻的多个情节比较熟悉,但不过有两件事可能对你有帮助:

  • multiplot允许“set size”命令(请参阅“帮助集大小”以获取更多信息)以用于每个图形。但我想如果你说Not So FAQ页面上的脚本没有帮助,这可能还不够。
  • 因此设置边距(参见“帮助设置边距”)可能很有用,可用于更精确地对齐多图中的图形。它还经常解决导致许多错位问题的不同长度的数据范围问题。

答案 1 :(得分:1)

我建议不要使用pm3dmultiplot,而是使用plot … with image。这样,您就可以使用单个plot命令。

如果我没有犯任何错误,只需将您的代码更改为(multiplot之前的所有内容不变):

[…]
set y2range [-20:1]
set palette rgb 33,13,10   #rainbow color scheme

unset colorbox
plot\
'cisq_rrr_reduced.dat' w image notitle,\
'final_pmf.dat' u 1:2 w line lt 2 lw 2 notitle axis x1y2

答案 2 :(得分:0)

您可以使用gnuplot通过set table将轮廓数据保存到文件中的功能(请参阅文档,而不是隐式示例here)。类似的东西:

...
set table 'contours.dat'
splot[0:12][0.2:1] 'cisq_rrr_reduced.dat' u 1:2:3  notitle
unset table

plot[0:12] 'final_pmf.dat' u 1:2 w line lt 2 lw 2 notitle axis x1y2, \
           'contours.dat' using 1:2

根据您的情况进行调整。