2012-01-31 138 views
2

我想创建一个datasetA的颜色映射图,其中包含数据集B的等值线图,这两个图都是从文件中读取的。如何覆盖gnuplot中colormap上的等高线图?

的成功下面创建datasetA的颜色映射:

plot 'valuesA.dat' matrix with image 

如上所述here我可以绘制轮廓。

我该如何结合这两块地块?

在此先感谢!

+1

您想以何种方式组合这两块地块?这不会导致结果无法读取吗? – Woltan 2012-02-01 08:08:53

+0

我对你想做什么感到困惑。对我来说,它看起来像你想要的是在上面的链接中提供的(简单地用'set table'和'unset table'命令之间的数据集B替换原始数据的轮廓。] – mgilson 2012-03-18 20:04:44

+1

看看[gnuplot技巧](http://gnuplot-tricks.blogspot.com/search?q=contour),在这里详细描述。在这个例子中,使用相同的数据,但您可以选择不同的数据集来获得您想要的结果。 – Andreas 2013-09-19 21:53:43

回答

1

要回答这个问题,请在gnuplot tricks处解决。

+0

对不起!我从来没有真正接受你的答案。我现在会。为了方便,我还添加了自己的答案,因为我认为这对路人可能有帮助。 – jvriesem 2014-08-15 04:23:56

1

下面是我如何完成512×512大小的数组(例如)。假设我有一个数据文件A.dat用于色彩图,B.dat用于轮廓。

  • B.dat创建包含轮廓数据的表并将其保存到临时文件temp.dat
  • 使用A.dat绘制颜色图并在单个命令中绘制临时文件temp.dat的轮廓线。

这里是我的代码(为了清楚有所简化):

# Set initial state 
reset 
set term X11 
set palette @MATLAB # see http://www.gnuplotting.org/matlab-colorbar-with-gnuplot/ 

# Create a file for contour data 
set contour base 
set cntrparam levels 25 
set isosample 250,250 
unset surface 
set table "temp.dat" 
splot "B.dat" binary array=512x512 format='%double' 
unset table 


# Plot the final results 
set title "Contours and Colormap" 
set size square 
unset key 
set xtics ('0' 0, '0.5' 255, '1.0' 511) # Change these according to your dimensions 
set ytics ('0' 0, '0.5' 255, '1.0' 511) # Change these according to your dimensions 

set cbrange [0.0:1.0] 
set xlabel "X (scaled by height)" 
set ylabel "Z (scaled by height)" 


set terminal png 
set output "output.png" 
plot "A.dat" binary array=512x512 format='%double' with image, "temp.dat" with lines lt -1 

要看看是什么样子,我结束了使用该代码的脚本版本产生this movie(及其他)为我的研究!

+0

你是如何创建轮廓数据文件的?它有什么格式?并且不可能写轮廓文件,以便它可以直接使用而不需要创建临时文件? – Sjoerd222888 2015-03-14 14:13:21

+0

我在这个答案中的代码实际上在段落中创建轮廓文件('temp.dat'),名为'#为轮廓数据创建文件'。前三行设置了我想要的等高线图,'未设置的曲面'告诉gnuplot我只*想要这个数据的轮廓线 - 没有曲面图与它一起走。 'set table“temp.dat”'标识输出轮廓文件。下一行说创建轮廓图(它将按照前面一行的规定输出),它使用名为''B.dat''的源数据文件,它是一个具有512x512双精度值的二进制数据文件。 – jvriesem 2015-03-16 18:55:03

+0

在最后一行(从'plot'开始),您会注意到它使用了两个输入文件:''A.dat“'(这是我想要的实际2D颜色”图像“图),* plus * '“temp.dat”'等高线图文件。这告诉gnuplot做轮廓叠加在2D“图像”图上。这是否都回答你的问题@ Sjoerd2228888?有关等值线绘图的更多文档可在此处获得:http://gnuplot.sourceforge.net/docs_4.2/node168.html。 – jvriesem 2015-03-16 18:57:43