Gibt es eine Möglichkeit hinzuzufügen mehr als eine Grenze (z. B. Bundesland, Landkreis, Postleitzahl) zur Hintergrundkarte, die individuell angepasst werden kann (Farbe, Dicke usw.)?
@shasheminassab ,
Ich glaube, Graph Builder erlaubt nur eine Map-Variable. Angenommen, Sie haben eine Adresstabelle und jeder Adresse ist eine Postleitzahl, ein Landkreis, das Bundesland und andere relevante Informationen, Haushaltstyp, politische Zugehörigkeit, Beschäftigungsstatus usw. zugeordnet.
Verwenden Sie den Code von Craig Hale, um räumliche Informationen in Shape-Dateien umzuwandeln, was ich tun würde:
- Ziehen Sie die Postleitzahl in den Kartenbereich
- fügen Sie grafische Skripte hinzu, um den Umriss des Staates zu zeichnen,
- Fügen Sie ein grafisches Skript für jeden Landkreis hinzu
- Erstellen Sie einen lokalen Grafikfilter für Postleitzahl, Landkreis und Bundesstaat
Ich habe keine solche Datei. Ich habe eine Datentabelle für die Postleitzahl und Bevölkerung des Bundesstaates Nebrask, die ich zu Demozwecken verwenden werde. Wie in anderen Beiträgen erwähnt, können Postleitzahlen Bezirksgrenzen überschreiten (dh nicht verschachtelt sein), sodass ich nicht in allen Fällen eine Postleitzahl einem Bezirk zuordnen kann. Aber hier sind ein paar Screenshots, um die Machbarkeit zu zeigen. Die hellgrauen Linien stellen Postleitzahlen dar, die schwarzen Linien sind Landkreise und die dicke Linie ist der Staatsumriss.
Ich habe die Datei mit eingebettetem Skript angehängt.


Names Default to Here(1);
dt = current data table();
gb = dt << Graph Builder(
Variables( Shape( :Zip Code ) ),
Elements( Map Shapes( Legend( 2 ) ) )
);
//add state outline
mloc = Get Path Variable("JMP_Home");
temp = Open( mloc || "Maps/US-State-Name.jmp", Invisible);
idx = temp << get rows where(:Name == "Nebraska");
sid = :Shape ID[idx][1];
close(temp, NoSave);
temp = Open( mloc || "Maps/US-State-XY.jmp", Invisible);
idx = temp << get rows where(:Shape ID == sid);
sxmat = temp:X[idx];
symat = temp:Y[idx];
Close(temp, NoSave);
spath = concat(sxmat,symat);
nr = nrow(spath);
spath = concat(spath, J(nr,1,2));
spath[1,3]=1;
spath[nr,3] = -2;
Eval(EvalExpr(report(gb)[FrameBox(1)] <<ADD graphics="" script=""></ADD>