问题
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.)
回答1:
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
回答2:
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)
回答3:
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.
回答4:
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)
回答5:
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.
来源:https://stackoverflow.com/questions/5242253/how-do-i-convert-an-integer-to-a-string-in-gnuplot