Darf ich fragen, ob es die Möglichkeit gibt, eine benutzerdefinierte PPT-Vorlage zu verwenden? Wo können wir mehrere Diagramme in einer Folie hinzufügen, wenn wir eine Vorlage haben?
Ich verstehe vollkommen, was Sie verlangen. Manchmal lassen sich jedoch in JMP verfügbare Funktionen, die auf die interaktive Nutzung ausgerichtet sind, nicht besonders gut auf die Skriptwelt übertragen. Der lokale Datenfilter ist einer davon. Es ist wirklich ein fantastisches interaktives Tool, aber im folgenden Skript werden Sie sehen, dass seine Verwendung in einem Skript das Skript nur komplexer macht. Und die interaktive Funktion, bei der die verschiedenen Werte, die in der Filterliste gut angezeigt werden, bei Verwendung in JSL nicht im Filter verfügbar sind.
Hier ist das Skript, das einen skriptgesteuerten lokalen Datenfilter verwendet
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
// Get the levels of the Sex column. The Summarize function will
// create a list of the different levels of whatever column is
// specified in the "By" claue
Summarize( dt, GroupBy = By( :Sex ) );
gb = Graph Builder(
invisible,
Size( 517, 437 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 3 ) ) )
);
For( i = 1, i <= N Items( GroupBy ), i++,
gb << Local Data Filter( Add Filter( columns( :Sex ), Where( :sex == GroupBy[i] ) ), Mode( Show( 1 ), Include( 1 ) ) );
If( i == 1,
gb << Save Presentation( "$TEMP/jmp_example2.pptx" ),
gb << Save Presentation( "$TEMP/jmp_example2.pptx", Append )
);
gb << remove data filter;
);
Open( "$TEMP/jmp_example2.pptx" );
Hier ist das Beispiel, das ich bei der Beantwortung Ihrer Fragen verwendet habe, das den lokalen Datenfilter nicht verwendet und tatsächlich eine bessere Version der gewünschten Ausgabe erhält.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
// Get the levels of the Sex column. The Summarize function will
// create a list of the different levels of whatever column is
// specified in the "By" claue
Summarize( dt, GroupBy = By( :Sex ) );
For( i = 1, i <= N Items( GroupBy ), i++,
gb = dt << Graph Builder(
// The invisible option helps to keep the desktop clean
invisible,
Size( 517, 437 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 3 ) ) ),
// Here is an easy way to subset the data used in the grap
Where( :sex == GroupBy[i] )
);
If(i==1,
gb << Save Presentation( "$TEMP/jmp_example.pptx" ),
gb << Save Presentation( "$TEMP/jmp_example.pptx", Append );
);
);
Open( "$TEMP/jmp_example.pptx" );
Das zweite Beispiel ist viel einfacherer Code
Um zu verhindern, dass Diagramme angezeigt werden, während der Code ausgeführt wird, aber noch nicht in das ppt geschrieben wurde, kann in der Plattform die Option „Unsichtbar“ angegeben werden. Ich habe auch eine Möglichkeit zur Verwaltung Ihrer Filterung hinzugefügt, damit Sie eine einfache Möglichkeit sehen, damit umzugehen
Ich möchte auch darauf hinweisen, dass alle diese Optionen usw. anhand von Beispielen dokumentiert und veranschaulicht werden @:
Hilfe==>Skriptindex
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
gb = dt << Graph Builder(
// The invisible option helps to keep the desktop clean
invisible,
Size( 517, 437 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 3 ) ) ),
// Here is an easy way to subset the data used in the grap
Where( :sex == "F" )
);
New Window( "the graph", myvlb = V List Box() );
myvlb << append( Report( gb ) );
Hier ist ein Beispielskript.
Names Default to Here( 1 );
// The open function below, just need to point to the .xls or .xlsx file you want to open
dt=open("$SAMPLE_DATA\Big Class.jmp");
// Run the Distribution Platform
dis=dt<<DISTRIBUTION></DISTRIBUTION>