La fonction Line () trace une ligne dans un graphique, par exemple, et peut faire partie d'un script graphique. Pour ajouter de nombreuses lignes de manière itérative, il est préférable de travailler avec une représentation sous forme de chaîne du script graphique et de l'analyser à chaque itération. L’exemple JSL ci-dessous peut vous donner quelques idées.
// Exemple de tableau avec les ventes entre quatre villes et leurs coordonnées.
dt = Nouvelle table ( "LinesBetweenCities.jmp" ,
Ajouter des lignes ( dix ) ,
Nouvelle colonne ( "Ville" ,
Personnage ,
Définir des valeurs (
{ "Cleveland, Ohio" , "Cleveland, Ohio" , "Cleveland, Ohio" , "Cleveland, Ohio" , "Des Moines, Iowa" , "Des Moines, Iowa" , "Des Moines, Iowa" ,
"Los Angeles, Californie." , "Los Angeles, Californie." , "Montgomery, Ala." }
)
) ,
Nouvelle colonne ( "N" , Numérique , Format ( "Meilleur" , 12 ) , Définir des valeurs ( [ 41.467 , 41.467 , 41.467 , 41.467 , 41.583 , 41.583 , 41.583 , 34.05 , 34.05 , 32,35 ] ) ) ,
Nouvelle colonne ( "W" ,
Numérique ,
Format ( "Meilleur" , 12 ) ,
Définir des valeurs ( [ - 81.617 , - 81.617 , - 81.617 , - 81.617 , - 93.617 , - 93.617 , - 93.617 , - 118.25 , - 118.25 , - 86.3 ] )
) ,
Nouvelle colonne ( "Ventes" , Numérique , Continu , Format ( "Meilleur" , 12 ) , Formule ( Rond ( Uniforme aléatoire () , 2 ) ) ) ,
Nouvelle colonne ( "Avec" ,
Personnage ,
Nominal ,
Définir des valeurs (
{ "Cleveland, Ohio" , "Des Moines, Iowa" , "Los Angeles, Californie." , "Montgomery, Ala." , "Des Moines, Iowa" , "Los Angeles, Californie." ,
"Montgomery, Ala." , "Los Angeles, Californie." , "Montgomery, Ala." , "Montgomery, Ala." }
)
) ,
Définir les états de ligne ( [ 8 , 0 , 0 , 0 , 8 , 0 , 0 , 8 , 0 , 8 ] ) ,
Définir les colonnes d'étiquette ( : Ville )
) ;
gb = Générateur de graphes (
Variables ( X ( : W ) , Y ( : N ) ) ,
Éléments ( Points ( X , Y , Légende ( 1 ) ) ) ,
SendToReport (
Envoi (
{} ,
"Graph Builder" ,
FrameBox ,
{ Carte de fond ( Limites ( "États américains" ) ) , Taille du marqueur ( 6 ) , Ordre de la grille ( 2 ) , Commande de ligne de référence ( 3 ) ,
DispatchSeg (
ShapeSeg ( 1 ) ,
{ Couleur de la ligne ( { 204 , 204 , 204 } ) , La couleur de remplissage ( "Aucun" ) , Remplissage de forme manquant ( 2147483647 ) , Remplissage de valeur manquante ( - 14540253 )}
)}
)
)
) ;
fb = rapport ( gb ) [ FrameBox ( 1 )] ;
// Représentation sous forme de chaîne du script qui trace une ligne
line_string =
"fb << ajoute un script graphique (3, Couleur du stylo ({.3, .5, .7});
Taille du stylo (^ rond (10 *: ventes , 0) ^);
Ligne ({^: W ^, ^: N ^}, {^: W [coord] ^, ^: N [coord] ^})
) " ;
// Ajoute des scripts graphiques qui tracent des lignes entre chaque paire de villes. La taille du stylo dépend des ventes.
Pour ( je = 1 , je <= N Row ( dt ) , je ++,
coord = ( dt << marches où ( : avec [ je ] == : Ville )) [ 1 ] ; // récupère les coordonnées de la ville dans la colonne Avec
Eval ( Analyser ( Eval Insert ( line_string ) ) ) ; // évalue les variables de line_str et analyse le texte en jsl actif
) ;