Para dibujar líneas entre los puntos, utilice
plot "test.dat" with lines
o para mantener los marcadores de punto, así como las líneas, utilice
plot "test.dat" with linespoints
Así que su ejemplo se convierte en
set terminal svg
set output "test.svg"
plot "test.dat" with lines
Otros consejos:
No considere todas las muestras:
Con archivos grandes, también puede resultarle útil representar cada enésima muestra con "cada n". Esto hará que la trama sea mucho más rápida de generar y también arrojará un archivo svg más pequeño (pero menos detallado).
p. Ej.
plot "test.dat" every 100 with lines
Ignorar encabezado del archivo .dat:
Si su sox-producido archivo .dat tiene algunas líneas de metadatos de introducción, como
; Sample Rate 44100
; Channels 2
se puede añadir lo siguiente a tener gnuplot considere esos comentarios de líneas e ignórelos.
set datafile commentschars ";"
Esto le ahorrará tener a su archivo .dat pre-proceso con el fin de eliminar esas líneas antes de gnuplot se ahoga con ellos. canales
Terreno izquierdo y derecho de audio estéreo:
Si está trabajando con un archivo de música, es probable que quieren ver los dos canales.
Podemos usar "multiplot" para trazar los siguientes dos gráficos (del canal izquierdo y derecho) uno encima del otro en un eje x compartido, como lo hacen muchos programas de edición de sonido.
set multiplot layout 2,1
plot "test.dat" using 1:2 with lines
plot "" using 1:3 with lines
El 1: instruir gnuplot 3 que las columnas del archivo DAT para utilizar como x y fuentes Y: 2 y 1. Estoy asumiendo tu estéreo.dat archivo producido por sox parece como el mío, con columnas para - 1: el tiempo desde el inicio de la primera muestra de - 2: valor de la muestra normalizada de canal izquierdo - 3: valor de la muestra normalizada de canal derecho
fragmento de ejemplo:
10.840113 0.20101929 0.17840576
10.840136 0.26062012 0.14831543
10.840159 0.23779297 0.13146973
Juntando todo: Aquí hay un script que pone todo lo anterior junto. Si no tiene un archivo de datos estéreo para probar esto, querrá eliminar la trama de 1: 3 y la configuración de multiplot.
#!/usr/bin/env gnuplot
set datafile commentschars ";"
set terminal svg
set output "test.svg"
set multiplot layout 2,1
plot "test.dat" using 1:2 every 100 with lines
plot "" using 1:3 every 100 with lines
unset multiplot
prettification
Por último, hemos ajustado el guión de presentación (préstamos en gran medida de la excelente "gnuplot en acción" libro de Philipp K. Janert):
#!/usr/bin/env gnuplot
set datafile commentschars ";"
set terminal svg
set output "test.svg"
set multiplot layout 2,1
set ylabel "sample value"
set bmargin 0
set format x ""
set ytics -0.8,0.2
set key bottom
plot "test.dat" using 1:2 every 100 with lines lc rgbcolor "#a0a0b0" title "left channel"
set xlabel "time (s)"
set bmargin
set tmargin 0
set format x "%g"
set ytics -1.0,0.2,0.8
set key top
plot "" using 1:3 every 100 with lines lc rgbcolor "#a0a0b0" title "right channel"
unset multiplot
Aquí hay un ejemplo de salida (aunque png):
Cómo hacer un archivo .dat
Para cualquier persona siguiendo a lo largo en su casa, puede utilizar Medias para generar un archivo .dat de un archivo de audio con el siguiente comando:
sox input.wav output.dat
advertencia archivo grande: La conversión de solo 10 segundos de audio estéreo a 40kHz producirá un archivo de salida de 25Mb.
gracias que será de gran ayuda! – algomachine
Ahora recibo un error de análisis después de crear el archivo .svg. Puedo leer el archivo, por ejemplo, en Safari, pero no en Adobe Illustrator. Después de abrir el archivo en Safari, el navegador me dice que sucedió "error en la línea 1857 en la columna 47: contenido adicional al final del documento". – algomachine
Acabo de crear un archivo eps postscript. Gracias de nuevo. – algomachine