【问题标题】:Gnuplot read line style from data file columnGnuplot 从数据文件列中读取线型
【发布时间】:2023-03-08 19:35:01
【问题描述】:

我想从一个如下所示的文本文件中绘制一个脉冲图:

II 5 0 0 288.40 1.3033e+14 
II 6 0 0 289.60 1.5621e+14 
II 1 4 0 302.70 3.0084e+13 
II 2 4 0 303.40 4.0230e+13 
II 1 5 1 304.40 3.4089e+13

情节概念上应该是plot "datafile.dat" using 5:6 w impulses ls $2

基本上,给定一组先前定义的线型,我想为第 5 列和第 6 列中的每两个绘制点输入第 2 列中的线型编号。
我还想为每个绘制点创建一个文本框,从前四列中获取字符串。

有人知道这是否可能吗?

【问题讨论】:

    标签: gnuplot


    【解决方案1】:

    要将第二列中的数据用作线条样式,请使用set style increment userlinecolor variable

    set style increment user
    plot "datafile.dat" using 5:6:2 with impulses lc var
    

    要放置标签,请使用labels 绘图样式:

    plot "datafile.dat" using 5:6:1 with labels offset 0,1
    

    把所有东西放在一起,你有:

    set style increment user
    set for [i=1:6] style line i lt i
    set yrange [0:*]
    set offsets 0,0,graph 0.1,0
    plot "datafile.dat" using 5:6:2 with impulses lc var, "" using 5:6:1 with labels offset 0,1
    

    4.6.3 的结果是:

    【讨论】:

      【解决方案2】:

      感谢上述有用的回答。它几乎解决了我的问题

      我实际上是在尝试使用数据文件中的列来指定线型(点、正方形、三角形,只要是用户定义的),而不是线色。有什么办法吗?

      这条线有效:我得到不同颜色的点(在第 4 列中指定),但点样式是相同的。

      plot "$file" u 1:2:4 w p notitle lc var, "" using 1:2:3 with labels offset 0,1 notitle
      

      在定义我自己的样式后用ls 替换lc 不起作用(ls 不能有variable 作为选项) 没有不同的线条样式我也可以生活,但它会更漂亮。

      【讨论】:

        【解决方案3】:

        您只需将行set for [i=1:6] style line i lt i 替换为set for [i=1:6] style line i lt i pt %,其中% 可以是您想要的任何类型的点

        【讨论】:

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