2011-03-09 29 views
11

sé cómo utilizar $ con using en ejemplos comocómo convertir un entero a una cadena en gnuplot?

plot datafile using f($1):g($2) 

para trazar las funciones de datos de columna. Pero quiero utilizar esta característica en un bucle:

plot for [c=1:10] datafile using f($(c)):g($(c+1)) 

Por supuesto que este código no funciona. Supongo que si sé cómo convertir el entero c en una cadena (o un solo carácter ASCII), entonces funcionaría. Alguien sabe como hacerlo?

[Si la misma tarea se puede hacer sin necesidad de conversión de entero en cadena, que estaría bien también.]

+0

No está seguro de lo su marcador de posición c significa? Si quieres un bucle for en gnuplot prueba algo como http://stackoverflow.com/questions/4062999/gnuplot-script-for-loop-within-or-adding-to-existing-plot/4115145#4115145. Si desea dividir la salida en función del xrange, utilice el operador ternario http://t16web.lanl.gov/Kawano/gnuplot/misc1-e.html – Tom

+1

. No creo que gnuplot piense en _c_ como una cadena. Más bien analiza la línea y ve que 'c' no es un número y luego rompe la interpretación, ya que esto funciona: diagrama para el archivo de datos [c = 2: 3] usando (f ($ 1)) :(g ($ 2)) title sprintf ("% d", c) Tenga en cuenta que _c_ se interpreta como un número entero al final. – Woltan

Respuesta

4

¿Está buscando algo como:

plot for [c=1:5] datafile using (column(c)):(column(c+1)) 

Esto va a hacer: plot datafile u 1:2, "" u 2:3, "" u 3:4, "" u 4:5, "" u 5:6

+0

Volviendo después de mucho tiempo ... y eso es exactamente lo que quería :). ¡Gracias! – Mahdiyar

0

¿Qué tal algo como esto? La instrucción de bucle podría ser diferente dependiendo del shell que esté utilizando. El de abajo está usando bash.

plot '< for i in 1 2 3 4 ; do echo $i ; done' us ($1):($1+1) 
15

Puede utilizar sprintf función intrínseca para convertir los números de secuencia

gnuplot> a=3; b=6; 
gnuplot> plot a*x+b title sprintf("a=%1.2f; b=%1.2f",a,b) 
+2

¡Esta es la única respuesta que es consistente con el título de la pregunta! – Sjoerd222888

Cuestiones relacionadas