在 3d 散点图中绘制高度矩阵列表

Plot a list of matrices at heights in 3d scatter plot

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

所示

但是,现在我想通过在 z 的递增值处绘制每个矩阵来在同一张图上可视化所有矩阵,其中每个点都是一个彩色点。我正在尝试实现类似于以下问题的东西,

Plot 3D Grid Data as Heat Map using gnuplot

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

这是一个矩阵的数据:

 7.606193E-01 -2.706752E-01  1.605924E-01  9.973101E-01  6.646065E-01 -4.177295E-01 -5.101588E-01 -5.338852E-01 -9.443505E-01  6.273689E-01  4.401633E-01  9.428387E-01 -1.783963E-01  1.702644E-01 -9.304313E-01  3.995178E-01 
-1.574189E-01 -3.911715E-01 -5.581077E-01 -3.719385E-02  7.144460E-01 -3.147125E-01  4.237802E-01  6.533050E-01  5.385187E-01  8.391651E-02 -5.773817E-01  1.456075E-01  6.028832E-01  5.313966E-01  3.894490E-01  7.329324E-01 
 8.147309E-01 -8.286917E-01 -9.708381E-01 -6.634787E-02  8.603123E-01  8.952920E-01  6.777392E-01  4.347730E-01 -9.271995E-01  8.899992E-01  5.525438E-01 -7.496139E-01  7.592094E-01  3.412833E-01  1.220876E-01  7.281239E-01 
 6.915789E-01  3.365000E-01 -4.771788E-01  7.674200E-01  8.059295E-01  3.545558E-01  2.764826E-01  3.801301E-01 -6.679796E-01  1.163551E-01 -5.292152E-01 -3.500514E-01 -8.614216E-01 -8.356531E-02 -8.391827E-01  7.258298E-01 
 1.219247E-01  5.344889E-01  8.977039E-01 -5.708083E-01 -6.809624E-01 -5.687558E-01  3.830947E-01  9.990373E-01 -6.038938E-01  9.162573E-01 -4.214753E-01  4.186414E-01 -4.224649E-01 -9.376176E-01 -1.170071E-01  3.825447E-01 
-1.046988E-01  5.206562E-01 -9.832160E-01 -6.588389E-01  6.122716E-01  2.926736E-01 -8.736564E-01  9.977460E-01  8.937872E-01 -8.719974E-02 -7.742046E-01 -9.490100E-01  6.090313E-01  8.220433E-01  7.705420E-01  5.937839E-01 
 8.668659E-01 -5.811435E-01 -4.980876E-01 -5.458175E-02 -1.702000E-01 -9.681295E-01 -9.898823E-01  8.014537E-01  6.852101E-01  3.412942E-01 -4.313660E-01  6.886256E-01 -8.974125E-01  8.012120E-01  7.893018E-01 -1.869330E-01 
-1.168977E-01 -8.988775E-01 -2.580437E-01 -8.019403E-02  4.935626E-01  3.774684E-01  5.609375E-02  8.018482E-01 -9.803250E-01 -8.223162E-01 -7.441623E-02  7.592162E-01 -3.084599E-01  2.728176E-01 -7.114622E-01 -4.335231E-01 
 9.071215E-01  7.551532E-01  1.640213E-02 -2.627113E-01 -1.102158E-01 -3.576760E-02  7.584369E-02  3.586933E-01  9.412469E-01 -7.919924E-01 -7.883645E-01 -4.693788E-01 -1.549372E-01  1.823575E-01  4.206510E-01 -4.489097E-01 
 2.449895E-01 -4.566137E-02  5.805491E-01  3.808071E-01  4.885185E-01  9.662528E-01 -9.306209E-02  2.467101E-02  2.380986E-01 -9.053143E-01 -3.499831E-01 -4.224079E-01 -2.420047E-01  1.568254E-01 -1.696076E-01 -2.344714E-01 
-1.045739E-01 -2.254802E-01 -5.760012E-01  7.194423E-01  9.792110E-01 -7.514746E-01 -1.239218E-01 -3.922474E-01 -6.499553E-01  5.908898E-01  8.695512E-01 -6.576686E-01  7.101708E-01  6.389254E-01 -3.228182E-01  3.177363E-01 
-7.059239E-01 -8.482834E-01 -1.630977E-01 -9.891499E-01 -5.450270E-01 -6.303106E-01  1.596098E-01 -2.695453E-01  1.340886E-01 -3.888265E-01 -4.888381E-02  1.609239E-01  3.058087E-01  7.288026E-01  9.176123E-01  2.593470E-02 
-5.400585E-01  8.222967E-01  3.648388E-01 -6.635013E-01 -4.210275E-01 -2.741717E-01  1.431661E-01 -2.184412E-01 -6.006791E-01 -9.289613E-03  2.788451E-01 -2.769694E-01 -9.857075E-01 -5.143206E-01 -1.455316E-01  9.782214E-01 
-7.254217E-01 -1.668047E-01 -7.403084E-01  5.606276E-01  1.713349E-01  8.025852E-01 -9.133063E-01 -3.648469E-01  9.402033E-01 -2.317766E-01  7.771178E-01  8.427679E-01  5.951350E-02  9.725678E-01  7.514953E-01 -2.132574E-02 
 3.962623E-01 -8.680837E-01 -6.393657E-01  7.831294E-01 -5.947012E-02 -9.781432E-01 -8.829182E-01 -9.939770E-01  7.487056E-02 -7.578757E-01  6.196460E-01 -7.909356E-01 -1.149577E-01 -2.736676E-01  2.013560E-01  5.961972E-02 
 7.165400E-01 -2.371667E-01 -7.857778E-01  7.715441E-01  5.449374E-01  2.804987E-02 -1.380231E-01 -5.877602E-01  3.679530E-01  3.016719E-01 -5.242305E-01  1.064826E-01 -6.910435E-02  7.062310E-01  8.472682E-02 -9.717143E-01 

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

正如在您发布的 link 中提到的那样,制作这样的情节需要(至少据我所知)在 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

哪个会给你:

不漂亮,但有效。根据您拥有的矩阵数量,您必须使用 labelsticsview 参数。希望对您有所帮助!

您可以 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

或者,根据您的需要,您还可以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