开发者

setting multiple labels at the top of the x-axis

After the answer got in my earlier post drawing vertical lines in between bezier curves, I have been trying to label the segments separated by the dotted lines. I used x2label but found out that if I use it multiple times then the data gets replaced though they are positioned in different places. Below开发者_开发技巧 is the script:

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

The output is the following.

setting multiple labels at the top of the x-axis

I want to label Phoneme1, Phoneme2...and so on.. on top of each segment. How would I do it? Also as I was suggested in my earlier post to play with the line "" u 1:($2-0.2):(0):(0.3) w vectors nohead ls 2 to get a top to bottom vertical lines. But that also did not work. How do I get the lines from top margin to bottom? Thank you.


The horizontal lines

The horizontal lines can be accomplished with setting the yrange to an explicit value. Otherwise gnuplot would try to get some space between the lines and the axis. You could choose the values

set yrange [0.3:1.2]

Then you simply modify the vector using directions like so:

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

(see below for the complete script)

The labeling of the sections

A quick way of doing this with your set of data would be this:

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

However, this will probably not look the way you want it to look. You could think of modifying your data file to also include some information about the labeling like:

#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

Then the labels line would simply look like:

"" u 3:4:5 w labels

The complete plot then looks like this:

setting multiple labels at the top of the x-axis

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜