Ein Bild als Hintergrund für ein Diagramm hinzufügenVerehrte Gäste,
Ich habe das folgende Skript geschrieben. Nach dem Öffnen einer Datentabelle werden die Daten übernommen und mit dem Diagrammersteller ein Diagramm erstellt. Dann lädt es ein Bild, das denselben Namen wie die geöffnete Datentabelle hat, und verwendet dieses Bild als Hintergrund für das Diagramm.
Damit das Skript funktioniert, musste ich dem Namen der Datentabelle die Dateierweiterung .png als Teil des Namens hinzufügen. Daher 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 die Bilddatei nicht gefunden werden kann.
Ich bin sicher, dass das Problem auf sauberere Weise 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>
MassenanpassungBetreff: Ein Bild als Hintergrund für ein Diagramm hinzufügenVielleicht funktioniert eines davon für Sie:
filename = "testname.html";
Substr(filename, 1, Contains(filename, ".")-1);
Left(filename, Length(fileName) - 5);
Word(1, filename, ".");
Weitere Informationen zu den Funktionen finden Sie im Scripting Index
Betreff: Ein Bild als Hintergrund für ein Diagramm hinzufügenVielen Dank, das hat funktioniert und ich habe mein Problem gelöst.
Wissen Sie, wie ich die Dateierweiterung in einer Textzeichenfolge entfernen kann? Ich habe ein Skript, das die Namen der Bilddateien in einem Ordner liest und ihre Namen in einen Vektor einfügt. Jeder Name enthält auch die Erweiterung. Gibt es einen einfachen Befehl, um die letzten vier Buchstaben einer Textzeichenfolge zu entfernen?
Vielen Dank,
Marcello.
Betreff: Ein Bild als Hintergrund für ein Diagramm hinzufügenVielen Dank!Betreff: Ein Bild als Hintergrund für ein Diagramm hinzufügenUnter Windows gibt die Get Name()-Nachricht an eine Datentabelle nur den Tabellennamen ohne angehängte Datei „.jmp“ zurück.
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
Protokoll:
//:*/
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
/*:
dt << get name() = "Big Class";
Sie müssen also „.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 hier angehängten Big Class.png-Datei.
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} )
);
Hinweis: Auf dem Mac gibt < Ersetzen in() um „.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>
Betreff: Ein Bild als Hintergrund für ein Diagramm hinzufügenHallo,
Das Problem besteht darin, dass die Variable „n“ eine Zeichenfolge und kein Bild ist, selbst nachdem das neue Bild aufgerufen wurde. Ich habe keine Möglichkeit gefunden, eine Zeichenfolge direkt in ein Bild umzuwandeln, aber Sie können ein Dummy-Textfeld txtb = (n) erstellen und dann das Bild dieses Objekts abrufen txtimg = tctb << Bild abrufen und schließlich die Variable txtimg verwenden als Hintergrund.
Ich hoffe, es hilft. Andere haben möglicherweise elegantere Möglichkeiten, dieses Problem anzugehen.
Am besten,
TS