So verwenden Sie Variablen in Skalenwerten (einer Heatmap)Hallo zusammen,
Im folgenden Beispiel wurde eine Heatmap am Beispiel von Big Class.jmp erstellt:
gb=Graph Builder(
Size( 686, 525 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Color( :age ) ),
Elements( Heatmap( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient( {Scale Values( [11 18] )} )},
Item ID( "age", 1 )
)
)}
)
)
);Gibt es eine Möglichkeit, Variablen zum Definieren der Grenzen der Gradientenskala zu verwenden? Folgendes möchte ich erreichen:
gradient_low=10;
gradient_high=19;
gb=Graph Builder(
Size( 686, 525 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Color( :age ) ),
Elements( Heatmap( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient( {Scale Values( matrix({<FONT face="arial black,avant garde" color="#FF0000">gradient_low</FONT>, <FONT face="arial black,avant garde" color="#FF0000">gradient_high</FONT>}) )} )},
Item ID( "age", 1 )
)
)}
)
)
);
Ich möchte „grandient_low“ und „gradient_high“ verwenden, um die Grenzen des Heatmap-Gradienten zu definieren.
Ich habe versucht, eval() , eval expr() usw. zu verwenden, habe es aber noch nicht zum Laufen gebracht.
Danke
Automatisierung und SkripterstellungBetreff: So verwenden Sie Variablen in Skalenwerten (einer Heatmap)Du kannst
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gradient_low = 10;
gradient_high = 19;
gb = Eval(EvalExpr(dt << Graph Builder(
Size(686, 525),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Color(:height)),
Elements(Heatmap(X, Y, Legend(7))),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient({Scale Values(Expr(Matrix({gradient_low, gradient_high})`))})},
Item ID("height", 1)
)
)}
)
)
)));
aber ich würde höchstwahrscheinlich den Legend Server nutzen
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gradient_low = 10;
gradient_high = 19;
gb = dt << Graph Builder(
Size(686, 525),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Color(:height)),
Elements(Heatmap(X, Y, Legend(7))),
);
m_gradient = Matrix({gradient_low, gradient_high})`;
server = gb << Get Legend Server;
items = server << Get Legend Items;
items[1][1] << Set Properties({gradient({Scale Values(m_gradient)})});Betreff: So verwenden Sie Variablen in Skalenwerten (einer Heatmap)@LatentDataTiger
Was Jarmo sagt, ist richtig.Er hat jedoch eine Änderung an Ihrem Beispiel vorgenommen, die möglicherweise nicht bemerkt wird.Ihr Beispiel verwendet die Variable „Alter“ als Spalte „Farbe“, wobei Jarmo sie in „Höhe“ geändert hat.Der Unterschied besteht darin, dass „Alter“ den Modellierungstyp „Ordinal“ und „Größe“ den Modellierungstyp „Kontinuierlich“ hat.Eine Ordinalspalte berücksichtigt die Gradientenwerte nicht.Um dies für das Alter zu tun, müssen Sie den Modellierungstyp der Spalte ändern.Hier ist ein Skript, das den angegebenen Farbverlauf für Ihr Originalbeispiel festlegt.
Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
dt:age << modeling type( continuous );
gradient_low = 10;
gradient_high = 19;
Eval(
Eval Expr(
gb = Graph Builder(
Size( 686, 525 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Color( :age ) ),
Elements( Heatmap( X, Y, Legend( 7 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
7,
Properties(
0,
{gradient(
{Scale Values( Matrix( {Expr( gradient_low ), Expr( gradient_high )} ) )}
)},
Item ID( "age", 1 )
)
)}
)
)
)
)
)
;Betreff: So verwenden Sie Variablen in Skalenwerten (einer Heatmap)Hallo Jarmo und Jim
Ich bin sehr daran interessiert, die Technik des Legendenservers zu erlernen, aber die letzte Zeile Ihres Skripts hat nicht funktioniert. Hier ist der Fehler, den ich erhalte:
object not subscriptable in access or evaluation of 'items[1][1]' , items[1][/*###*/1]
Können Sie bitte beim Einchecken der letzten Zeile helfen?
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gradient_low = 10;
gradient_high = 19;
gb = dt << Graph Builder(
Size(686, 525),
Show Control Panel(0),
Variables(X(:weight), Y(:height), Color(:height)),
Elements(Heatmap(X, Y, Legend(7))),
);
m_gradient = Matrix({gradient_low, gradient_high});
server = gb << Get Legend Server;
items = server << Get Legend Items;
items[1][1] << Set Properties({gradient({Scale Values(m_gradient)})});
Danke,
rex
Betreff: So verwenden Sie Variablen in Skalenwerten (einer Heatmap)Könnte möglicherweise mit der Version zusammenhängen. Welche JMP-Version verwenden Sie? Ich verwende JMP 17.2.
Betreff: So verwenden Sie Variablen in Skalenwerten (einer Heatmap)Ich verwende derzeit JMP 15 und 16. Ich habe zwar JMP 17, aber einige meiner Tools, die meine Kollegen entwickelt haben, würden in JMP17 nicht funktionieren, also habe ich beschlossen, bei 15 und 16 zu bleiben.