【问题标题】:Gnuplot Heatmap from multiple Files来自多个文件的 Gnuplot 热图
【发布时间】:2015-10-12 11:22:46
【问题描述】:

我的数据如下所示:

2015-08-01 07:00    0.23    0.52    0.00    0.52    9   14.6    14.6 14.6   67  8.5 0.0 --- 0.00    0.0 --- 14.6    14.1    14.1    16.3    1016.2  0.00      0.0   156 0.22    156 0.0 0.00    0.0 0.003   0.000   23.9    39  9.1 23.4    0.05    23  1   100.0   1   1.8797836153192153  660.7143449269239

2015-08-01 07:01    0.25    0.53    0.00    0.53    0   14.6    14.6    14.6    67  8.5 0.0 --- 0.00    0.0 --- 14.6    14.1    14.1    16.3    1016.2  0.00    0.0 153 0.22    153 0.0 0.00    0.0 0.003   0.000   23.9    39  9.1 23.4    0.00    23  1   100.0   1   1.8894284951616422  657.3416264126714   105 73  121 163

2015-08-01 07:02    0.25    0.52    0.00    0.52    0   14.7    14.7    14.6    67  8.6 0.0 --- 0.00    0.0 --- 14.7    14.2    14.2    16.1    1016.2  0.00    0.0 139 0.20    139 0.0 0.00    0.0 0.003   0.000   23.9    39  9.1 23.4    0.00    24  1   100.0   1   1.8976360559992214  654.4985251906015

2015-08-01 07:03    0.26    0.53    0.00    0.53    0   14.7    14.7    14.7      67    8.6 0.0 --- 0.00    0.0 --- 14.7    14.2    14.2    16.1    1016.3  0.00    0.0 139 0.20    144 0.0 0.00    0.0 0.003   0.000   23.9    39  9.1 23.4    0.00    23  1   100.0   1   1.9047561611790007  652.0519661851259

2015-08-01 07:04    0.25    0.53    0.00    0.53    0   14.7    14.7    14.7    67  8.7 0.0 --- 0.00    0.0 --- 14.7    14.2    14.2    16.2    1016.3  0.00    0.0 141 0.20    141 0.0 0.00    0.0 0.003   0.000   23.9    39  9.1 23.4    0.00    24  1   100.0   1   1.903537153899393   652.4695341279602

2015-08-01 07:05    0.25    0.52    0.00    0.52    0   14.8    14.8    14.7    67  8.7 0.0 --- 0.00    0.0 --- 14.8    14.3    14.3    16.3    1016.3  0.00    0.0 148 0.21    148 0.0 0.00    0.0 0.002   0.000   23.9    39  9.1 23.4    0.00    23  1   100.0   1   1.897596925383499   654.5120216976508
 ........
 ........

我有多个文件看起来是这样的:所以我从 2015-08-01、2015-06-05 等获得数据。

我想从 ONE 图中的所有文件中以某种 热图样式 绘制与第 3 行和第 25 行相关的第 43 行 :-)。所以这些是要从每个文件中挑选出来的行:

0.23 156 660.7143449269239
0.25 153 660.7143449269239
0.25 139 654.4985251906015
0.26 139 652.0519661851259

我通过 dgrid 3d 获得了正确的格式,这是我目前的输出:

这是我的代码

set dgrid3d
set grid
set palette model HSV defined ( 0 0 1 1, 1 1 1 1 )
set pm3d map 
unset surf
set pm3d at b

splot "data_AIT_lvl1_20150604.csv" every ::121::600 using 3:25:43 lc    palette   title '{/Symbol l}average 20150604',\
"data1.csv" every ::121::361 using 3:25:43 lc palette title '{/Symbol l}average 20150605',\
"data2" every ::121::361 using 3:25:43 lc palette title '{/Symbol l}average 20150606',\
"data3.csv" every ::121::361 using 3:25:43 lc palette title '{/Symbol l}average 20150703',\
and so on for multple files

我喜欢输出,但我想知道是否有办法改进图中的覆盖区域以更好地区分值?是否有一种 gnuplot 方法可以将我想要从每个文件中绘制的所有数据写入一个大表中,并将该表中的数据绘制到热图中。我尝试了一些事情,但不知何故忘记了我所有的尝试和错误步骤,所以我想也许你们中的一个人可以用一种干净的方法帮助我。

到目前为止,感谢您提供的答案,我正在尽力详细说明我的第二个问题: 现在我在图中绘制了多天的值,它看起来不错,但是有些部分重叠,所以我看不到图中所有天的值(色调)。 因为根据我的经验,我倾向于使这样的问题过于复杂,所以我决定问这个问题是否有办法解决这个问题。 我想也许把所有的日子都放在一张大桌子上,所有的数据都被绘制在一个层次上,所以我会得到一个简单的彩色热图。 我尝试了 Joces 表解决方案,它完美无缺,但 Joce 是对的,它实际上并没有解决我的问题。

如您所见,现在有大量数据,颜色各异,但您无法区分不同的日子。阿洛斯,第一张图片的空隙(左边的紫色大块和进入的橙色块之间)已经消失并融化成一个大块。

所以我想我想问的是,是否有另一种更好的方法可以用轮廓来获得我想要的东西。

【问题讨论】:

  • 您在哪个操作系统上工作?
  • 工作中的 Windows 7 和家里的 OS X
  • 你为这个问题提供了太多细节“是否有一种 gnuplot 方法可以将我想从每个文件中绘制的所有数据写入一个大表并绘制该表中的数据”,而不是对于更一般的问题来说已经足够了。

标签: gnuplot heatmap


【解决方案1】:

你要求的是

set table
set output "one_big_table"
splot "file1" using c1:c2:c3:..., \
      "file2" using C1:C2:C3:...., \
      ...
unset table

这将创建与您的文件一样多的块,因此我不确定您的最终目标是否会如此容易实现。但这是一个不同的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    相关资源
    最近更新 更多