encajar una spline con una variableOye,
Construyo un gráfico con leyenda dinámica que el usuario puede elegir por caja de radio.
El nombre de la leyenda que el usuario elige se guarda como variable 'L1'.
Quiero agregar una función que cuando un usuario hace clic en un valor de la leyenda, la spline de este valor se vuelva más audaz.
Agrego un controlador de estado al archivo e intenté usar este script:
rsh1 = test1 << Make Row State Handler( dt, rsupdate1 );
rsupdate1 =function({},
SplineSelectlist=dt:L1[dt<<GET selected="" rows=""></GET>
El estado 'encaja donde' no reconoce la variable.
También probé con 'parse' o sin 'eval' o para definir la variable antes
mycolumn= eval(L1);
pero ninguno de ellos funciona.
Me alegraría saber si hay una solución para esto.
Gracias.
Re: encaja una spline con una variableDado que no se proporcionó más información, supongo que lo que necesita. Tal vez solo necesitabas hacer tu declaración de spline usando y expresando. Este script permite seleccionar uno o varios valores de leyenda. Usa:
- El enlace predeterminado de una tabla de resumen invisible para administrar las selecciones de leyenda. Esta tabla invisible se cierra cuando la bivariada está cerrada.
- Una función de controlador de estado de fila para borrar splines anteriores y mostrar solo las seleccionadas de la leyenda.
- Ha sido probado en JMP14.1 y JMP13.21.

Names Default to Here(1);
dt0 = Open("$sample_data/SATByYear.jmp");
//create a smaller table too many groupings
dt0 << Select Where( :Region=="Plains" | :Region=="South");
dt = dt0 << Subset(All Columns, Output Tablename("SomeStates"));
close(dt0,NoSave);
//change Year from Ordinal to Continuous to create a Bivariate report
dt:Year << Set Modeling Type("Continuous");
//The legend column is hardcoded. It seemed like you know how to do that.
//I created a new column just for interest
gCol = dt << New Column("Region_State", character);
gcol << set each value( substr(:Region,1,1) || "_" || :State);
dt << Color by Column(:Region);
//Create the Bivariate report
biv = dt << Bivariate( Y(:SAT Math), X(:Year) );
//Add a row legion for the legend column. For your script you woudl have to remove the
//previous legend and add a new one.
rbiv = Report(biv);
fb = rbiv[FrameBox(1)];
//You would likely change both color and symbol, just made it different for interest
fb << Row Legend(:Region_State, color(0), Marker(1));
//It will be easier to create the Spline with a By group. The Summary table simplifies the task.
sumdt =dt << Summary(Group(:Region_State), Invisible);
//if the biv winow is closed/ close summary table
biv << On Close (Close(sumdt, NoSave)); //closes the summary table and row state handler
//Create a row state handler function, that defines the tasks when rge rowstate of sumdt changes.
f = Function({a},
_c = biv << Xpath("//IfBox[@isTrue='true']");
for(i=nitems(_c), i>=1, i--, biv << (curve[i] << Remove Fit) );
_yy = sumdt << get selected rows();
if(nrow(_yy)>0,
_xx = (sumdt:Region_State<<GET values=""></GET>
Re: encaja una spline con una variableNo hay suficiente información aquí para responder, y hay algunos problemas de sintaxis.
¿El gráfico tiene splines ya dibujados y desea que el elemento seleccionado resaltado?
¿Está utilizando GraphBuilder o Bivariate (Ajustar Y por X)?
: eval (L1) no es la sintaxis adecuada.
Re: encaja una spline con una variableHola,
Me gustaría unirme al tema inicial, ya que me he encontrado con un problema similar.
Estoy intentando crear un "botón de selección de legand" donde cada valor es un nombre de columna.
Al elegir un valor, el leagend y ranura de mi Bivariate x / y el gráfico se actualizará de acuerdo con el valor elegido (la leyenda anterior y la spline se borrarán).
Sin embargo, no sé cómo adaptar la función "encajar donde" para recibir un variable como entrada (la variable es el nombre de la columna seleccionada), como se describe en la consulta original aquí.
Gracias, Hadar
Re: encaja una spline con una variable @vsr , tu tarea es diferente de @shiro tarea de @shiro Necesario para encajar una spline por diferentes valores de una columna.
Mire el ejemplo que proporcioné, la curva mostrada es diferente para diferentes valores de Estado.
A partir de tu descripción, pareces querer diferentes. columnas No hay valores diferentes de una columna. Ajustar donde se selecciona en valores de una columna elegida. Sin más detalles de lo que específicamente estás tratando de hacer, solo puedo adivinarlo.
Supongo que es posible que desee trazar diferentes Y o diferentes X, es decir, columnas. Si ese es el caso, JMP tiene una solución integrada, llamada conmutador de columnas. Por si acaso, eso es lo que necesita, le proporcioné un ejemplo de captura de pantalla y script. Si esto no es lo que necesita, por favor proporcione más detalles.

Names Default to Here(1);
dt = Open("$sample_data/TechStock.jmp");
biv = dt << Bivariate(
Y( :Name( "Adj. Close*" ) ),
X( :Date ),
Fit Spline( 10, {Line Color( {212, 73, 88} )} ),
Column Switcher(
:Name( "Adj. Close*" ),
{:Open, :High, :Low, :Close, :Name( "Adj. Close*" )}
)
);
//select a Y column one at a time or select the "play/go" button and JMP will cycle thru all columns