首页 > 解决方案 > 在 gnuplot 中使用 `word` 命令定义点类型

问题描述

我正在使用相同的线型 ( ls 1) 绘制多个数据文件。但是,我想使用wrd_pt下面代码中包含的不同点类型来区分数据。

结果如图所示,其中 GNUPLOT 将变量中包含的值wrd_pt而不是与每个数字关联的符号(正方形、三角形等)绘制为 pointtype。我正在使用GNUPLOT 5.0并且无法更新它(我不是我正在使用的计算机的 sudoer)以使用例如版本 5.2 的数组。

有谁知道我该如何解决?

[... initializing ...]
wrd_pt ="5 7 9 11 13 15"
[... some other piece of code ...]
set output "plot_1a.eps"
    plot for [i=1:words(fspo_one)] work_dir.word(fspo_one, i) u 1:5 w lp ls 1 pt word(wrd_pt, i) ps 1 notitle
unset output 

代码结果

标签: gnuplot

解决方案


为什么不使用绘图风格with labels?也适用于 gnuplot 5.0。

像这样的东西:

代码:

### point types as string from a string
reset session

wrd_pt = "5 7 9 11 13 15"

set xrange[0:10]
set style textbox opaque

set samples 10
plot for [i=1:words(wrd_pt)] '+' u 1:(i*$1**2) w l lw 2 notitle, \
     for [i=1:words(wrd_pt)] '+' u 1:(i*$1**2):(word(wrd_pt,i)) w labels boxed notitle

### end of code

结果:

在此处输入图像描述


推荐阅读