How do I convert an integer to a string in gnuplot?

浪尽此生 提交于 2019-12-21 03:48:05

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!