2012-06-04 21 views
11

Tengo un archivo de dos columnas que tiene 1000000 entradas, es decir 1000000 filas, sin embargo, no quiero trazar todos los datos, ¿solo quiero trazar los puntos cada 100 líneas? ¿Cómo hacer esto en gnuplot? Además, ¿es posible especificar algunas filas particulares para trazar en gnuplot?Cómo trazar líneas específicas en GNUplot

+0

Puede hacer uso de awk en gnuplot. Feliz de explicar, si explicas tu problema con más detalle. –

Respuesta

24

Tiene al menos dos opciones aquí. En primer lugar, revisar la documentación para help datafile every

plot 'datafile' every 100 using 1:2 

Otra opción es utilizar la pseudo-columna 0 (help datafile using pseudo) en conjunción con el operador ternario (help ternary) y el conocimiento de que gnuplot silenciosamente ignora números indefinidos para filtrar las líneas :

plot 'datafile' u (((int($0)%100)==0)? $1 : 1/0):2 

usted puede hacer esto un poco más fácil de entender si se utiliza una macro:

set macro 
line_number='int($0)' 
plot 'datafile' u (((@line_number % 100) == 0) ? $1 : 1/0) : 2 

Tenga en cuenta que solo incluyo el segundo porque podría (en principio) usar esto para seleccionar números de línea muy extraños del archivo de datos (p. 1,100,1000,10000) que no se puede hacer usando cada - p. Ej.

plot 'datafile' u (((@line_number == 1 || @line_number == 100 || @line_number == 1000) $1:1/0)):2 

consulta las respuestas a this question

+0

¡Esta respuesta es demasiado útil, gracias! – EverythingRightPlace

+0

$ 0 ya es un número entero, no es necesario int(). – Karl

Cuestiones relacionadas