Hallo zusammen,
Ich habe das folgende Skript geschrieben. Nach dem Öffnen einer Datentabelle werden die Daten erfasst und mithilfe des Diagrammgenerators ein Diagramm erstellt. Anschließend wird ein Bild geladen, das denselben Namen wie die geöffnete Datentabelle hat, und dieses Bild als Hintergrund für das Diagramm verwendet.
Damit das Skript funktioniert, musste ich dem Datentabellennamen die Dateierweiterung .png als Teil des Namens hinzufügen. Also musste ich sowohl das Bild als auch die Datentabelle benennen, indem ich .png in ihren Namen einfügte (die Bilddatei hat die Erweiterung .png).
Wenn der Name des Bildes beispielsweise sample.png lautet, musste ich ihn in sample.png.png ändern.
Natürlich gefällt mir das nicht, aber wenn ich diese Änderung nicht vornehme, sagt jmp, dass es die Bilddatei nicht finden kann.
Ich bin sicher, dass das Problem sauberer gelöst werden kann.
Vielen Dank für jede Hilfe.
Names Default To Here(1);
dt=Current Data Table();
gb = dt <<
Graph Builder(
Variables( X( :x ), Y( :y ), Overlay( :track ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
SendToReport(
Dispatch(
{},
"x",
ScaleBox,
{Min( 0 ), Max( 280 ), Inc( 50 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"y",
ScaleBox,
{Min( 0 ), Max( 265 ), Inc( 50 ), Minor Ticks( 1 )}
),
Dispatch( {}, "Graph Builder", FrameBox, {Transparency( 0.05 )} )
)
);
frame = (gb << report)[FrameBox( 1 )];
n = dt << Get Name();
img = newImage(n);
img<<ROTATE></ROTATE>
Unter Windows gibt die Nachricht Get Name () für eine Datentabelle nur den Tabellennamen zurück, ohne dass ".jmp" angehängt ist.
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
Log:
//:*/
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
/*:
dt << get name() = "Big Class";
Sie müssen also die ".png" anhängen, um einen vollständigen Dateinamen für New Image () zu erhalten.
Hier ist ein Beispiel mit Big Class (auf Ihren Desktop kopiert) und der angehängten Big Class.png-Datei hier.
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", FrameBox, {Transparency( 0.5 )} ) )
);
frame = (gb << report)[FrameBox( 1 )];
n = dt << Get Name();
img = New Image( "$DESKTOP/" || n || ".png" );
frame << Add Image(
image( img ),
Bounds(
Left( 61.2587412587413 ),
Right( 179.370629370629 ),
Top( 70.8292080975384 ),
Bottom( 48.5033161162993 )
),
SetSize( {799, 620} )
);
NB: Auf dem Mac gibt << Get Name () den gesamten Dateinamen einschließlich der .jmp-Datei zurück. Daher müssen Sie auf dem Mac verwenden Ersetzen Sie in () um die ".jmp" durch ".png" zu ersetzen.
Names Default To Here( 1 );
dt = Open( "~/Desktop/Big Class.jmp" );
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) ),
SendToReport( Dispatch( {}, "Graph Builder", FrameBox, {Transparency( 0.5 )} ) )
);
frame = (gb << report)[FrameBox( 1 )];
n = dt << Get Name();
Substitute Into( n, ".jmp", ".png" );
img = New Image( "~/Desktop/" || n );
//img<<ROTATE></ROTATE>