Aggiunta di un'immagine come sfondo di un graficoCarissimi,
Ho scritto il seguente script. Dopo aver aperto una tabella dati, prende i dati e crea un grafico utilizzando il generatore di grafici. Quindi carica un'immagine che ha lo stesso nome della tabella dati aperta e utilizza quell'immagine come sfondo per il grafico.
Per far funzionare lo script, ho dovuto aggiungere al nome della tabella dati l'estensione del file .png come parte del nome. Quindi ho dovuto nominare sia l'immagine che la tabella dati aggiungendo .png al loro nome (il file immagine ha l'estensione .png).
Ad esempio, se il nome dell'immagine è sample.png, devo cambiarlo in sample.png.png.
Ovviamente questo non mi piace, ma se non apporto questa modifica jmp dice che non riesce a trovare il file immagine.
Sono sicuro che il problema può essere risolto in un modo più pulito.
Grazie mille per qualsiasi aiuto.
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>
Personalizzazione di massaRi: Aggiunta di un'immagine come sfondo di un graficoForse uno di questi funzionerà per te:
filename = "testname.html";
Substr(filename, 1, Contains(filename, ".")-1);
Left(filename, Length(fileName) - 5);
Word(1, filename, ".");
Controlla l'indice degli script per ulteriori informazioni su cosa fanno le funzioni
Ri: Aggiunta di un'immagine come sfondo di un graficoMolte grazie, ha funzionato e ho risolto il mio problema.
Sai come posso eliminare l'estensione del file in una stringa di testo? Ho uno script che legge i nomi dei file di immagine in una cartella e inserisce i loro nomi in un vettore. Ogni nome contiene anche l'estensione. Esiste un semplice comando per eliminare le ultime quattro lettere di una stringa di testo?
Grazie molto,
Marcello.
Ri: Aggiunta di un'immagine come sfondo di un graficoGrazie molto!Ri: Aggiunta di un'immagine come sfondo di un graficoSu Windows, il messaggio Get Name() in una tabella di dati restituisce solo il nome della tabella, senza l'aggiunta di ".jmp".
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
Tronco d'albero:
//:*/
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
/*:
dt << get name() = "Big Class";
Quindi, dovrai aggiungere ".png" per ottenere un nome file completo per New Image().
Ecco un esempio che utilizza Big Class (copiato sul desktop) e il file Big Class.png allegato qui.
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: Su Mac, < Sostituisci in() per sostituire ".jmp" con ".png".
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>
Ri: Aggiunta di un'immagine come sfondo di un graficoCIAO,
Il problema è che la variabile "n" è una stringa, non un'immagine anche dopo aver chiamato la Nuova Immagine. Non ho trovato un modo per convertire direttamente una stringa in un'immagine ma puoi creare un fittizio txtb = Text Box (n), quindi ottenere l'immagine di quell'oggetto txtimg = tctb << Ottieni immagine e infine utilizzare la variabile txtimg come sfondo.
Spero possa essere d'aiuto. Altri potrebbero avere modi più eleganti per affrontare questo problema.
Migliore,
TS