loops - una - Flujo de trabajo de Gnuplot que implica bucles de ajustes que se multiplican
graficar en 3d gnuplot (1)
Puedes definir tu función dependiendo de N como:
fstr(N) = sprintf(''f%d(x) = a%d*x**2 + b%d*x + c%d'', N, N, N, N)
eval(fstr(1))
Esto define la función f1(x) = a1*x**2 + b1*x + c1
. Para la función de ajuste debe hacer lo mismo:
fitstr(N) = sprintf(''fit ''''filename%d.txt'''' f%d(x) via a%d,b%d,c%d'', N, N, N, N, N)
Entonces primero haces todos los ajustes:
do for [i=0:N] {
eval(fstr(i))
eval(fitstr(i))
}
y luego trazar cada archivo de datos with points
y el ajuste correspondiente with lines
. Para tener todas las representaciones en un gráfico, debe usar un único comando de plot
y separar las representaciones con una coma.
Pero para agrupar el ajuste y los datos en la clave, puede usar la replot
de replot
para agregar gráficos. Y debe usar macros
para obtener la función correcta en los gráficos, eval
no funciona aquí:
set style data points
set style func lines
plot ''filename0.txt'' lt 1, f0(x) lt 1
set macros
do for [i=1:N] {
f = sprintf(''f%d(x)'', i)
replot sprintf(''filename%d.txt'', i) lt (i+1), @f lt (i+1)
}
Simplemente junte todo en un archivo y ejecute gnuplot con él.
Quiero hacer lo siguiente en gnuplot: leer mis archivos, que están convenientemente etiquetados como "filenameN.txt", donde N es el N-ésimo archivo.
Ajuste un polinom fN (x) a los datos, usando aN, bN, ... y graficar todos en un solo gráfico (múltiples trazados) usando multiplot
Sin embargo, no puedo hacer que funcione con los bucles disponibles en gnuplot. Lo que sí funciona es, por ejemplo, crear un archivo, que haga lo que yo quiero para N, y luego ejecutar un ciclo externo que pase N = 1 ... M.
Esto da como resultado M parcelas, pero no en un solo multiplot.
Para que esto funcione, necesito asignar variables con nombres de variables (f1, f2, ... a1, a2, ..., ...) para los ajustes (ya que potencialmente quiero usarlos todos de alguna manera)
También quiero que el bucle de la trama produzca gráficos simples en un lote múltiple (cada uno con datos y su ajuste, M veces, no un lote múltiple donde la primera gráfica contiene todas las líneas, y el resto de las parcelas están vacías.
Entonces tengo dos preguntas:
- Cómo asignar nombres variables variables
- Cómo usar bucles en un diseño de multiplot