gnuplot中4x1000数据的热图

gnuplot中4x1000数据的热图,gnuplot,heatmap,Gnuplot,Heatmap,我有1000 x 4的数据,浮点值在[01100]之间。如何在gnuplot中为该数据创建比较热图 我在Gnuplot上尝试了热图示例的演示版本。然而,我无法从中找到答案 数据如下所示: 我想显示的是热图中每个列(排序)的比较 例如: 据我所知,您希望单独处理列,而不是将整个内容作为矩阵处理。以下gnuplot命令将执行此操作: unset xtics unset ytics unset border set bmargin screen 0.1 set key samplen -1 set

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

我在Gnuplot上尝试了热图示例的演示版本。然而,我无法从中找到答案

数据如下所示:

我想显示的是热图中每个列(排序)的比较

例如:


据我所知,您希望单独处理列,而不是将整个内容作为矩阵处理。以下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[:可选 颜色]
  • 我们给它x的列号,y的行号,以及恒定的宽度和高度。可以调整宽度以减小列之间的间距
  • 底部边距增加,以便为标签留出空间
  • 标题单独放置在绘图下方,而不是放置在键框中
你提到排序,但不清楚你到底想要什么。如果想法是在绘图之前对每列中的值进行排序,我认为这必须通过调用系统命令来完成。在linux上,这可以通过将plot命令的第一行替换为以下内容来实现:

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

plot for[col=1:4]sprintf(“据我所知,您希望单独处理列,而不是将整个列作为矩阵处理。以下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[:可选 颜色]
  • 我们给它x的列号,y的行号,以及一个恒定的宽度和高度。你可以调整宽度来减少列之间的间隙
  • 底部边距增加,以便为标签留出空间
  • 标题单独放置在绘图下方,而不是放置在键框中
您提到了排序,但不清楚您想要的是什么。如果想法是在打印之前对每列中的值进行排序,我认为这必须通过调用系统命令来完成。在linux上,这可以通过将plot命令的第一行替换为以下内容来完成:

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

[col=1:4]sprintf(“您的数据文件的格式是什么?可能会显示前几行。@Ethan,谢谢您的回答,我已经更新了我的问题。您的数据文件的格式是什么?可能会显示前几行。@Ethan,谢谢您的回答,我已经更新了我的问题。非常感谢。这个答案解决了我所有的问题。这正是我想要解决的问题每一列都是单独的。数据在绘图之前进行排序。非常感谢。非常感谢。这个答案解决了我所有的问题。我正是想单独处理每一列。数据在绘图之前进行排序。非常感谢。