Chers tous,
J'ai écrit le script suivant. Après avoir ouvert une table de données, il prend les données et crée un graphique à l'aide du générateur de graphiques. Ensuite, il charge une image qui porte le même nom que la table de données ouverte et utilise cette image comme arrière-plan du graphique.
Afin de faire fonctionner le script, j'ai dû ajouter au nom de la table de données l'extension de fichier .png dans le cadre du nom. J'ai donc dû nommer à la fois l'image et la table de données en ajoutant .png dans leur nom (le fichier image a l'extension .png).
Par exemple, si le nom de l'image est sample.png, je devais le changer en sample.png.png.
Bien sûr, je n'aime pas ça, mais si je ne fais pas ce changement, jmp dit qu'il ne trouve pas le fichier image.
Je suis sûr que le problème peut être résolu de manière plus propre.
Merci beaucoup pour toute aide.
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>
Sous Windows, le message Get Name () à une table de données renvoie uniquement le nom de la table, sans le ".jmp" ajouté.
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
Enregistrer:
//:*/
Names Default To Here( 1 );
dt = Open( "$DESKTOP/Big Class.jmp" );
Show( dt << get name() );
/*:
dt << get name() = "Big Class";
Vous devrez donc ajouter le ".png" pour obtenir un nom de fichier complet pour Nouvelle image ().
Voici un exemple utilisant Big Class (copié sur votre bureau) et le fichier Big Class.png joint ici.
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: Sur Mac, << Get Name () renvoie le nom complet du fichier, y compris le .jmp. Par conséquent, sur Mac, vous devrez utiliser Remplacer par () pour remplacer le ".jmp" par ".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>