How do I convert an integer to a string in gnuplot?
I know how to use $
with using
in examples like
plot datafile using f($1):g($2)
to plot functions of column data. But I want to use this feature in a loop:
plot for [c=1:10] datafile using f($(c)开发者_JS百科):g($(c+1))
Of course this code doesn't work. I guess that if I know how to convert the integer c
to a string (or a single ASCII character) then it would work. How can I do it?
(If the same task can be done without conversion of integer to string, that would be fine too.)
You can Use intrinsic function sprintf to convert numbers to string
gnuplot> a=3; b=6;
gnuplot> plot a*x+b title sprintf("a=%1.2f; b=%1.2f",a,b)
Are you looking for something like:
plot for [c=1:5] datafile using (column(c)):(column(c+1))
This will do: plot datafile u 1:2, "" u 2:3, "" u 3:4, "" u 4:5, "" u 5:6
set title sprintf("Polinômio de Taylor no ponto %f ",a)
or the English variant
set title sprintf("Taylor Polynomial at the point %f ",a)
will define the title transforming the number a into the previous string I have use this in a loop, with the Taylor Polynomial calculated previously at the point a, where a containing a number is the governing variable of the while.
How about something like this? The loop statement could be different depending on the shell you are using. The one below is using bash.
plot '< for i in 1 2 3 4 ; do echo $i ; done' us ($1):($1+1)
Prepend an empty string if necessary. E.g.:
gnuplot> a=42
gnuplot> print a." questions"
internal error : STRING operator applied to non-STRING type
gnuplot> print "".a." questions"
42 questions
The first print
fails because of a type mismatch. The second one works fine though. Apparently .
is left associative.
精彩评论