【问题标题】:Gnuplot: how to make gnuplot keep counting the blank column?Gnuplot:如何让 gnuplot 不断计算空白列?
【发布时间】:2018-11-28 15:17:17
【问题描述】:

我正在尝试使用以下数据绘制衰减方案级别:

xl  E      elabel    Xa   E1    Xa   E2
1   500     0       5.2 321.32  5.2 249.67          
3   500     0       5.5 321.32  5.5 112.95  
5   321.32  0       5.8 321.32  5.8 0
8.5 321.32  321.32  
5   249.67  0       6.2 249.67  6.2 112.96
8.5 249.67  249.67  
5   112.95 
8.5 112.95  112.95
5   0
8.5 0   0

我使用以下方法绘制(gnuplot v 5.2)数据:

plot 'decay.txt'u 1:2 w l lc rgb 'black',\                            
     ''u 1:2:3 w labels right offset 0,0.8,                                
     ''u 4:5:($6-$4):($7-$5) w vec

结果几乎如我所愿:

除了一件事,水平线左上角的0标签应该被删除。我试图从数据的 elabel 列中删除 0 值(例如:col: elabel,第 1、3 和 5 行),就像在第 7 行(112.95 级别)中一样,但是它不会像 gnu 那样产生箭头将 Xa 列读取为第 3 列而不是第 4 列。

即使列中没有数据,是否仍然可以让 gnuplot 继续计算列?

【问题讨论】:

  • 如果您的数据是 TAB 分隔的,请尝试使用 set datafile separator "\t" 并删除数据中不需要的零

标签: gnuplot


【解决方案1】:

为了得到相同(或相似)的结果(在 guplot 5.2.5 中测试),即不同的层级不连接线,我需要在数据中引入空行。

获取您的数据(以下数据的列由 TAB 分隔):

# decay.txt
xl  E   elabel  Xa  E1  Xa  E2
1   500     5.2 321.32  5.2 249.67
3   500     5.5 321.32  5.5 112.95

5   321.32      5.8 321.32  5.8 0
8.5 321.32  321.32  

5   249.67      6.2 249.67  6.2 112.96
8.5 249.67  249.67  

5   112.95  
8.5 112.95  112.95

5   0
8.5 0   0
# end of data

以及以下代码:

# start code
reset session
set datafile separator "\t"
set yrange[0:600]
plot 'decay.txt' u 1:2 w l lc rgb 'black',\
     '' u 1:2:3 w labels right offset 0,0.8,\
     '' u 4:5:($6-$4):($7-$5) w vec
# end of code

结果如下:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    相关资源
    最近更新 更多