在GNUPLOT中绘制2D绘图(数据)的部分

时间:2018-05-29 12:00:54

标签: gnuplot

我正在尝试绘制热图'并且'该热图的切割'使用底部数据在特定位置。我想使用gnuplot中的every command来做到这一点,但我失败了。 every ::13::17:应该将数据从第13行绘制到第17行。我从gnuplot收到错误。

reset
set terminal pngcairo 
set output 'stack.png'
set palette defined (0 "white", 1 "red")
unset key
set style fill solid
#----------------- 2D plot ---------------
plot 'stack.dat' using 1:2:(log10($3))  with boxes linecolor palette notitle 
# ---- PLot a section of the 2D plot ----------
set output 'oups.png'
plot 'stack.dat' using 2:(log10($3)) every ::13::17: with lines notitle 

' stack.dat'是数据文件名

1 1        0.081051938235759735
1 2        0.039051856845617294
1 3        0.017708625644445419
1 4        0.053782138973474503
1 5        0.069525197148323059

2 1        0.046054631471633911
2 2        0.005992549471557140
2 3        0.010819308459758759
2 4        0.001308800885453820
2 5        0.032604649662971497

3 1        0.078480839729309082
3 2        0.000435109512181953
3 3        0.073167815804481506
3 4        0.052882101386785507
3 5        0.016808584332466125

4 1        0.060769289731979370
4 2        0.028200428932905197
4 3        0.031424820423126221
4 4        0.052520859986543655
4 5        0.078694045543670654

5 1        0.029850590974092484
5 2        0.027807384729385376
5 3        0.036195535212755203
5 4        0.026242787018418312
5 5        0.048620097339153290

我怎样才能使它有效? 是否有更好的方法来绘制热图的各个部分?

1 个答案:

答案 0 :(得分:1)

简短的回答是使用

  

plot' stack.dat'使用2:(log10($ 3))每个::: 2 :: 2使用行标题

当您有多个记录块时,数据文件中的行与记录之间存在区别。因此,为了指定数据序列,您需要blockrecord索引。查看文档以获取更多信息(请参阅Every):http://gnuplot.sourceforge.net/docs_5.2/Gnuplot_5.2.pdf