¿Cómo cambiar el color de la línea en un gráfico CDF o Quantile?Hola,
Estoy generando gráficos acumulativos como el siguiente ejemplo.
Sin embargo, quiero que el color de las líneas no sea determinado por col2 sino por col3.
Añadiendo Color (: col3) no hizo el truco ...
Gracias, Phil
De una sola mano(
Y (: col1), X (: col2),
Todos los gráficos (0), Plot Quantile by Actual (1), Line of Fit (0), X Axis Proportional (0), Grand Mean (0), Color (: col3)
)
Re: ¿Cómo cambiar el color de la línea en CDF o Quantile plot?Gracias de nuevo por sus esfuerzos.
Creo que hubo algunos errores de sintaxis en su sugerencia de script, que
fijo. Vea abajo. Sin embargo, sigo recibiendo mensajes de error como "No se puede encontrar
ScaleBox ["400"] en {} ", incluso si voy con" 222 "como sugeriste. (BTW,
nunca entendí lo que significa ese número) Y los estilos de línea no son
equilibrado. Los colores funcionan bien como antes.
gracias, Philipp
Expr =
"De una sola mano(
Y (: peso),
X (: Sex_Class),
Todos los gráficos (0),
Parcela Quantile por Real (1),
Línea de ajuste (0),
Eje X Proporcional (0),
Gran media (0),
SendToReport (
Despacho ({}, \! "400 \!",
ScaleBox,
{Modelo de leyenda (1 ";
Para (i = 1, i <= N Artículos (grupos), i ++,
Expr = Expr || ", Propiedades (" || Char (i) || ", {Line Style (\!" "||
tipo de línea [Mod (i, 5) + 1] || "\!" )}) ";
);
Expr = Expr || ")})))";
Eval (Parse (Expr));
Re: ¿Cómo cambiar el color de la línea en CDF o Quantile plot?Pruébalo por tamaño
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
// Create a new column
dt << New Column( "Sex_Class", character, formula( :Sex || "_" || Char( :Age ) ) );
// Determine how many groups in the :Sex_Class
Summarize( dt, groups = by( :Sex_Class ) );
// Create the value colors list
colorlist = {};
For( i = 1, i <= N Items( groups ), i++,
If( Substr( groups[i], 1, 1 ) == "F",
color = 19,
color = 21
);
Eval(
Substitute(
Expr(
Insert Into( colorlist, __group__ )
),
Expr( __group__ ), Parse( "{\!"" || groups[i] || "\!"" || "=" || Char( color ) || "}" )
)
);
);
// Set the Value Colors property for the Sex_Class column
dt:sex_CLASS << set property( "value colors", Eval( colorlist ) );
linetype = {"Solid", "Dotted", "DashDot", "DashDotDot", "Dashed"};
TheExpr =
"Oneway(
Y( :weight ),
X( :Sex_Class ),
All Graphs( 0 ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0 ),
X Axis Proportional( 0 ),
Grand Mean( 0 ),
SendToReport(
Dispatch(
{},
\!"222\!",
ScaleBox,
{Legend Model(
1,";
For( i = 1, i <= N Items( groups ), i++,
If( i > 1,
TheExpr = TheExpr || ","
);
TheExpr = TheExpr || "Properties(" || Char( i ) || ", {Line Style(\!"" || linetype[Mod( i, 5 ) + 1] || "\!" )} )";
);
TheExpr = TheExpr || "),
)}
)";
Eval( Parse( theexpr ) );
Sólo hay 5 estilos de línea disponibles
Re: ¿Cómo cambiar el color de la línea en CDF o Quantile plot?¡Guauu! ¡Estoy impresionado! ¡Funciona! He modificado el script para acomodarlo
El caso de más de 2 colores:
// Determinar colores para lotes
resume (dt, groups = by (: sex_class));
lista de colores = {}; color = 3; Sxcnt = Palabra (1, grupos [1], "_");
Para (j = 1, j <= n elementos (grupos), j ++,
Si (No (Palabra (1, grupos [j], "_") == Sxcnt), color = color + 1; Sxcnt = Palabra (1, grupos [j], "_"));
Eval (Sustituto (Expr (insertar en (lista de colores, __grupo__)), expr (__grupo__
), parse ("{\!" "|| groups [j] ||" \! "" || "=" || char (color) || "}")));
);
dt: sex_class <
Muchas gracias, pero ahora tengo codicia. ¿Qué hay de cambiar el estilo del tablero por clase?
Gracias filip
Re: ¿Cómo cambiar el color de la línea en CDF o Quantile plot?Puede lograr lo que desea al configurar los Colores de valor que desea para la columna: Clase de sexo con la que está trabajando. Aquí está el JSL para hacerlo, pero se puede hacer de manera interactiva
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
// Create a new column
dt << new column("Sex_Class", character,
formula(:Sex || "_" || char(:Age))
);
// Determine how many groups in the :Sex_Class
summarize(dt,groups=by(:Sex_Class));
// Create the value colors list
colorlist={};
For(i=1,i<=n items(groups),i++,
If(substr(groups[i],1,1)=="F",
color=19,
color=21
);
Eval(
Substitute(
Expr(
insert into(colorlist, __group__ )),
expr( __group__ ), parse("{\!""||groups[i]||"\!""||"="||char(color)||"}")
)
)
);
// Set the Value Colors property for the Sex_Class column
dt:sex_CLASS<<SET property=""></SET>

Re: ¿Cómo cambiar el color de la línea en CDF o Quantile plot?Muchas gracias por la rápida respuesta.
Se adjunta un ejemplo con varias clases M / F. Cada clase tiene su linea
Pero los colores definidos por el sexo.
La guinda del pastel sería color por sexo y tipo de guión por clase 
Filipina
De una sola mano(
Y (: Peso),
X (: Sex_Class),
Todos los gráficos (0), Plot Quantile by Actual (1), Line of Fit (0), X Axis
Proporcional (0), Gran media (0), Color (: sexo),
SendToReport (
Dispatch ({"Normal Quantile Plot"}, "Oneway QuantilePlot", FrameBox, {Line
Escala de ancho (3), Transparencia (0)},
)
)
Re: ¿Cómo cambiar el color de la línea en CDF o Quantile plot?Puedo entender cómo se pueden colorear los puntos de datos en una columna diferente
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << Oneway(
Y( :weight ),
X( :sex ),
All Graphs( 0 ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0(1) ),
X Axis Proportional( 0 ),
Grand Mean( 0 )
);
dt << color by( :age );
pero no veo cómo lo haces directamente con los segmentos de línea, ya que cada segmento está vinculado entre 2 valores que pueden tener 2 valores diferentes del tercer color. ¿Podrías proporcionar una maqueta de lo que estás pensando?