在三维散点图中绘制高度矩阵列表

时间:2018-03-14 08:01:25

标签: gnuplot heatmap scatter

我有一个文件,其中有一些由换行符分隔的矩阵。我可以将这些矩阵中的任何一个绘制为热图,如http://gnuplot.sourceforge.net/demo/heatmaps.html

所示

然而,现在我想在同一图表上将所有矩阵可视化,方法是将每个矩阵绘制为增加的z值,其中每个点都是一个彩色点。我试图实现类似于以下问题的东西,

Plot 3D Grid Data as Heat Map using gnuplot

但没有立方体,因为点就足够了。

这是一个矩阵的数据:

methods.login = function(email,password){
    model.fun.login(email, function(resPassword) {
        if(password === resPassword){
          console.log("success");
        }
        else {
          console.log("failure");
        }
    })
}

2 个答案:

答案 0 :(得分:3)

我不确定我是否理解正确,但似乎您希望每个矩阵都是固定(任意)z值的热图。

正如您发布的链接所提到的那样,制作一个类似的情节需要(至少据我所知)在gnuplot上进行大量争论。但是,您可以通过以下方式获得一个粗略的想法:

set term png
set out "tmp.png"

set view 80,30

splot "tmp" matrix u 1:2:(2):3 w p pt 5 ps 0.75 pal,\
      "tmp" matrix u 1:2:(1):3 w p pt 5 ps 0.75 pal,\
      "tmp" matrix u 1:2:(0):3 w p pt 5 ps 0.75 pal

哪会给你:

output

不漂亮,但有效。您必须使用labelsticsview参数,具体取决于您拥有的矩阵数量。希望它有所帮助!

答案 1 :(得分:2)

您可以splot每个矩阵with image

set ztics 1
set ticslevel 0
stats "data.dat" matrix nooutput
set xrange [-0.5:STATS_size_x - 0.5]
set yrange [-0.5:STATS_size_y - 0.5]

splot for [i=1:3] "data.dat" matrix using 1:2:(i):3 with image notitle

enter image description here

或者,根据您的需要,您还可以splot ... with pm3d

set view 70,23
set ztics 1
set ticslevel 0
set pm3d interpolate 5,5
set autoscale xfix
set autoscale yfix

splot for [i=1:3] "data.dat" matrix using 1:2:(i):3 with pm3d notitle

enter image description here