Reputation: 335
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)):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.)
Upvotes: 11
Views: 17659
Reputation: 3937
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.
Upvotes: -1
Reputation: 141
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.
Upvotes: 0
Reputation: 1789
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)
Upvotes: 17
Reputation: 481
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
Upvotes: 6
Reputation: 2311
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)
Upvotes: -1