gnuplot中4x1000数据的热图

时间:2019-03-26 14:57:55

标签: gnuplot heatmap

我有1000 x 4数据,浮点值在[0,100]之间。如何在gnuplot中为此数据创建比较热图?

我已经在Gnuplot上尝试了热图示例的演示版本。但是,我从中找不到答案。

数据如下:

enter image description here

我想在热图中显示各列的比较(排序)。

例如:

enter image description here

1 个答案:

答案 0 :(得分:2)

据我了解,您想单独对待各列,而不是将整个事情当作一个矩阵。以下gnuplot命令可以做到这一点:

unset xtics
unset ytics
unset border
set bmargin screen 0.1
set key samplen -1
set style fill solid
set palette defined (0 "forest-green", 1 "goldenrod")

plot for [col=1:4] 'data' \
     using (col):0:(0.45):(1.0):col with boxxy \
     lc palette title columnhead(col) at first col, graph -0.05

注意:

  • boxxy样式需要列输入x:y:delta_x:delta_y [:optional 颜色]
  • 我们给它x的列号,y的行号,以及恒定的宽度和高度。您可以调整宽度以减少列之间的间距。
  • 增加下边距为标签留出空间
  • 标题分别放置在图下,而不是放在键框中

您提到排序,但不清楚您想要什么。如果想法是在绘制之前对每一列中的值进行排序,我认为这必须通过调用系统命令来完成。在linux上,可以通过将plot命令的第一行替换为以下内容来完成:

plot for [col=1:4] sprintf("<sort -n -k %d data",col) \
    etc 

enter image description here