установка нескольких меток в верхней части оси X - PullRequest
0 голосов
/ 08 августа 2011

После получения ответа в моем предыдущем посте рисование вертикальных линий между кривыми Безье , я пытался обозначить сегменты, разделенные пунктирными линиями.Я использовал x2label, но обнаружил, что если я использую его несколько раз, то данные заменяются, хотя они расположены в разных местах.Ниже приведен скрипт:

set term x11 persist

set title "Animation curves"

set xlabel "Time (secs.)"
set ylabel "Parameter"

set x2label "Phoneme1" offset -35
set pointsize 2
set key off
set style line 2 lt 0 lc 1 lw 2
plot [0.04:0.15] "curve.dat" u 1:2 smooth csplines ls 1, "" u 1:($2-0.2):(0):(0.3) w   vectors nohead ls 2, \
                "curve.dat" u 1:2 with points

Вывод следующий.

enter image description here

Я хочу пометить Phoneme1, Phoneme2 ... и т. Д. В верхней части каждого сегмента.Как бы я это сделал?Также, как мне было предложено в моем предыдущем посте, поиграть со строкой "" u 1: ($ 2-0.2) :( 0) :( 0.3) w vector nohead ls 2 , чтобы получить вертикаль сверху внизлиний.Но это также не сработало.Как мне получить линии от верхнего поля до нижнего?Спасибо.

1 Ответ

1 голос
/ 09 августа 2011

Горизонтальные линии

Горизонтальные линии можно выполнить, установив для yrange явное значение. В противном случае gnuplot попытается получить пространство между линиями и осью. Вы можете выбрать значения

set yrange [0.3:1.2]

Затем вы просто изменяете вектор, используя направления, например:

"" u 1:(0.3):(0):(1.2) w vectors nohead ls 2

(полный сценарий см. Ниже)

Маркировка разделов

Быстрый способ сделать это с вашим набором данных будет следующим:

set key off
set style line 2 lt 0 lc 1 lw 2
set yrange [0.3:1.2]
plot [0.04:0.15] "Data.csv" u 1:2 smooth csplines ls 1, \
                 "" u 1:(0.3):(0):(1.2) w vectors nohead ls 2, \
                 "" u ($1+0.005):(1):(sprintf("P %d", $0)) w labels

Однако это, вероятно, будет выглядеть не так, как вы хотите. Вы можете подумать о том, чтобы изменить файл данных и включить некоторую информацию о маркировке, например:

#x-value y-value x-label y-label label
0.06 0.694821399177 0.65 0.1 Phoneme1
0.07 0.543022222222 0.75 0.1 Phoneme2

Тогда строка меток будет выглядеть так:

"" u 3:4:5 w labels

Тогда весь сюжет выглядит так: Plot of script from above

...