<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Soy casi completamente nuevo en JSL, así que discúlpeme si mi pregunta parece trivial ...
De todos modos, estoy tratando con una tabla de datos que contiene datos espectroscópicos procesados, con cada línea correspondiente a un conjunto de datos XY espectroscópico específico que están ubicados en archivos .txt separados. Ahora, quiero generar dinámicamente diagramas de superposición de los conjuntos de datos sin procesar correspondientes a las celdas / filas seleccionadas actualmente.
Por ejemplo, selecciono las filas 2 y 3 y la secuencia de comandos abre los dos archivos .txt correspondientes, los actualiza en una nueva tabla de datos temporales y genera la gráfica de superposición con las 2 series de datos. La próxima vez que seleccione las filas 6 a 9, y por supuesto, ahora el gráfico de superposición resultante debe contener 4 series de datos.
Mi script para hacer todo esto funciona bien hasta el punto de generar realmente los gráficos de superposición de forma dinámica.
Simplificado, generando la trama se ve así:
Parcela de superposición (
X (: Nombre ("cm-1")),
Y
parse (plot1),
parse (plot2),
parse (plot3)
)
Puntos de conexión (1),
Mostrar puntos (0),
);
Con las variables plot1 etc. Correspondiente a columnas en la tabla de datos temporales. Sin embargo, la cantidad de series de datos se fija en este ejemplo (3), y ahí es donde estoy atascado. ¿Puedo de alguna manera hacer esa dinámica? ¿Así que básicamente el guión cambia la cantidad de Y dependiendo del número de celdas / filas seleccionadas?
p.ej Y (análisis (gráfico1)) si solo hay uno, Y (análisis (gráfico1), análisis (gráfico2), análisis (gráfico3), análisis (gráfico4)) si hay 4?
Las variables plot # ya se están generando dinámicamente en función de la cantidad de filas seleccionadas. Entonces, todo lo que necesito realmente es una forma de tener dinámicamente que el número de entradas en la expresión Y () corresponda al número de filas seleccionadas.
¡Cualquier ayuda sería muy apreciada!
Wow eso fue rápido! ¡Funciona, genial!
Muchas gracias, se agradece!
¡aclamaciones!
Utilice una lista de columnas Y: Y (lista) o Y (eval (lista)). Por ejemplo:
dt = Tabla de datos actual () ; // Tabla de datos temporales
n1 = 2 ; // número de filas seleccionadas originalmente
n2 = N Col ( dt ) ; // número total de cols en dt
Parcela de superposición (
X ( : Nombre ("cm-1") ) ,
Y ( ( dt << obtener nombres de columna ) [ n2 - n1 + 1 :: n2 ] )
// Lista de columnas Y, asumiendo que están al final de la tabla Temp
) ;