<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich möchte eine Karte der USA mit Linien erstellen, die einige Städte miteinander verbinden. Dies ist für eine Supply-Chain-Anwendung, also idealerweise wäre die Breite der Linien proportional zu den Verkäufen, die zwischen diesen Punktsätzen geliefert werden. Sobald ich die Zeilen eingerichtet habe, kann ich die USA als Hintergrundkarte hinzufügen. Welche Grafikfunktion sollte ich verwenden?
Die Line () - Funktion zeichnet eine Linie innerhalb eines Diagramms und kann Teil eines Grafikskripts sein. Um viele Zeilen iterativ hinzuzufügen, ist es am sichersten, mit einer Zeichenfolgendarstellung des Grafikskripts zu arbeiten und es in jeder Iteration zu analysieren. Das folgende JSL-Beispiel kann Ihnen einige Ideen geben.
// Beispieltabelle mit Verkäufen zwischen vier Städten und ihren Koordinaten.
dt = Neue Tabelle ( "LinesBetweenCities.jmp" .
Zeilen hinzufügen ( 10 ) .
Neue Spalte ( "Stadt" .
Charakter .
Werte setzen (
{ "Cleveland, Ohio" . "Cleveland, Ohio" . "Cleveland, Ohio" . "Cleveland, Ohio" . "Des Moines, Iowa" . "Des Moines, Iowa" . "Des Moines, Iowa" .
"Los Angeles, Kalifornien." . "Los Angeles, Kalifornien." . "Montgomery, Ala." }
)
) .
Neue Spalte ( "N" . Numerisch . Format ( "Beste" . 12 ) . Werte setzen ( [ 41.467 . 41.467 . 41.467 . 41.467 . 41.583 . 41.583 . 41.583 . 34,05 . 34,05 . 32,35 ] ) ) .
Neue Spalte ( "W" .
Numerisch .
Format ( "Beste" . 12 ) .
Werte setzen ( [ - 81.617 . - 81.617 . - 81.617 . - 81.617 . - 93.617 . - 93.617 . - 93.617 . - 118,25 . - 118,25 . - 86.3 ] )
) .
Neue Spalte ( "Der Umsatz" . Numerisch . Kontinuierlich . Format ( "Beste" . 12 ) . Formel ( Runden ( Zufällige Uniform () . 2 ) ) ) .
Neue Spalte ( "Mit" .
Charakter .
Nominal .
Werte setzen (
{ "Cleveland, Ohio" . "Des Moines, Iowa" . "Los Angeles, Kalifornien." . "Montgomery, Ala." . "Des Moines, Iowa" . "Los Angeles, Kalifornien." .
"Montgomery, Ala." . "Los Angeles, Kalifornien." . "Montgomery, Ala." . "Montgomery, Ala." }
)
) .
Zeilenstatus festlegen ( [ 8 . 0 . 0 . 0 . 8 . 0 . 0 . 8 . 0 . 8 ] ) .
Beschriftungsspalten festlegen ( : Stadt )
) ;
gb = Graph Builder (
Variablen ( X ( : W ) . Y ( : N ) ) .
Elemente ( Punkte ( X . Y . Legende ( 1 ) ) ) .
SendToReport (
Versand (
{} .
"Graph Builder" .
FrameBox .
{ Hintergrundkarte ( Grenzen ( "US-Staaten" ) ) . Markergröße ( 6 ) . Rasterlinienreihenfolge ( 2 ) . Referenzzeile bestellen ( 3 ) .
DispatchSeg (
ShapeSeg ( 1 ) .
{ Linienfarbe ( { 204 . 204 . 204 } ) . Füllfarbe ( "Keiner" ) . Fehlende Formfüllung ( 2147483647 ) . Fehlender Wert füllen ( - 14540253 )}
)}
)
)
) ;
fb = Bericht ( gb ) [ FrameBox ( 1 )] ;
// String-Darstellung eines Skripts, das eine Linie zeichnet
line_string =
"fb << Grafikskript hinzufügen (3, Stiftfarbe ({.3, .5, .7});
Stiftgröße (^ Runde (10 *: Umsatz) 0) ^);
Zeile ({^: W ^, ^: N ^}, {^: W [Koord] ^, ^: N [Koord] ^})
) " ;
// Fügen Sie Grafikskripts hinzu, die Linien zwischen den beiden Städtepaaren zeichnen. Die Stiftgröße hängt vom Umsatz ab.
Zum ( ich = 1 . ich <= N Row ( dt ) . ich ++
Coord = ( dt << wo getrows ( : mit [ ich ] == : Stadt )) [ 1 ] ; // Koordinaten der Stadt in der Spalte Mit erhalten
Eval ( Parse ( Eval Insert ( line_string ) ) ) ; // werte die Variablen innerhalb von line_str aus und parse den Text in das Arbeits-Jsl
) ;
Gibt es Möglichkeiten, dies in JMP zu tun? Ich habe keinen Zugriff auf SAS.