Определите тип точки, используя команду `word` в gnuplot - PullRequest
1 голос
/ 31 января 2020

Я строю несколько файлов данных, используя один и тот же линейный стиль (ls 1). Однако я хотел бы дифференцировать данные, используя разные типы точек, содержащиеся в wrd_pt в приведенном ниже коде.

Результат показан на рисунке, где GNUPLOT отображает как тип точек значения, содержащиеся в переменной wrd_pt вместо символов (квадрат, треугольник, ...), связанных с каждым числом. Я использую 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 

Result of the code

1 Ответ

3 голосов
/ 31 января 2020

Почему бы не использовать стиль печати 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

Результат:

enter image description here

...