Trennen Sie die Datenverknüpfung im Overlay-Plot von der Datentabelle<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe im Skripthandbuch nach einer Möglichkeit gesucht, die Verknüpfung zwischen den in einem Overlay-Plot angezeigten Daten und der zugehörigen Datentabelle zu „unterbrechen“, kann aber scheinbar nicht herausfinden, wie das geht.Der Grund dafür ist, dass ich mehrere OPs mit verschiedenen vom Benutzer angegebenen Datenbereichen erstellen möchte.Ich verwende einen Datenfilter, um die Datumsbereiche auszuwählen, die mich interessieren, damit die resultierenden OPs die Daten der x- und y-Achse automatisch skalieren können, sodass ich diese Parameter nicht angeben muss, da sie sich im Laufe des Jahres dramatisch ändern.
Um das Problem zu vereinfachen, habe ich unten einen nachgebildeten Code eingefügt, der im Grunde zeigt, was ich erreichen möchte: Nämlich zwei OPs erstellen, die Daten für die Monate 1-3 UND 5-7 anzeigen, und die Verknüpfung jedes dieser OPs aufheben von den Originaldaten, sodass sich die im OP angezeigten Daten nicht von den ursprünglich angegebenen Daten ändern, wenn sich die aus dem Datenfilter ausgewählten Daten ändern.Für Vorschläge, wie dies erreicht werden kann, wären wir sehr dankbar.
Protokoll löschen();
dt = Open( "C:\Programme\SAS\JMP\10\Samples\Data\Time Series\Raleigh Temps.JMP" );
sdate = 1;
edate = 3;
obj = dt << Datenfilter(
Automatisches Löschen (1),
Fenster anzeigen (0),
Filter hinzufügen(
columns( :Name( "Monat" ) ),
Wo(
:Name( "Month" ) >= sdate & :Name( "Month" ) <=
edate
)
),
Modus( Show( 1 ), Include( 1 ) )
);
obj << Schließen;
Überlagerungsdiagramm(
X( :Name( "Monat" ) ),
Y( :Name( "Temperatur" ) ),
Separate Achsen (1),
Connect Thru Missing( 1 ),
Verbindungspunkte( 1 ),
SendToReport(
Versenden(
{},
„101“,
ScaleBox,
{Hauptraster anzeigen( 1), gedrehte Beschriftungen( „Automatisch“)}
)
)
);
Datum = 5;
edate = 7;
obj = dt << Datenfilter(
Automatisches Löschen (1),
Fenster anzeigen (0),
Filter hinzufügen(
columns( :Name( "Monat" ) ),
Wo(
:Name( "Month" ) >= sdate & :Name( "Month" ) <=
edate
)
),
Modus( Show( 1 ), Include( 1 ) )
);
obj << Schließen;
Überlagerungsdiagramm(
X( :Name( "Monat" ) ),
Y( :Name( "Temperatur" ) ),
Separate Achsen (1),
Connect Thru Missing( 1 ),
Verbindungspunkte( 1 ),
SendToReport(
Versenden(
{},
„101“,
ScaleBox,
{Hauptraster anzeigen( 1), gedrehte Beschriftungen( „Automatisch“)}
)
)
);
Betreff: Verknüpfung der Daten im Overlay-Diagramm mit der Datentabelle aufhebenWenn Sie sich Sorgen um den Platz machen, denken Sie vielleicht an das Kontrollfeld, das Graph Builder standardmäßig anzeigt, aber Sie können es mit Show Control Panel(0) deaktivieren.
Und wenn Sie Ihre Bedingungen in einer Spalte kodieren können, können Sie die Rollen „Gruppe X“ und „Gruppe Y“ verwenden, um eine recht kompakte Anzeige zu erstellen.
Im folgenden Beispiel erstelle ich eine Spalte mit der Angabe der Unternehmensgröße, um meine Bedingungen zu kodieren.
dt = Offen ( „$SAMPLE_DATA\Financial.jmp“ ) ;
dt << Neue Spalte ( "Firmengröße" , Formel ( Wenn ( : Name ( „#emp“ ) < 10000 , "Klein" , "Groß" ) ) ) ;
dt << Graph Builder (
Größe ( 638 , 770 ) ,
Systemsteuerung anzeigen ( 0 ) ,
Variablen (
X ( : Name ( „Vermögenswerte (Mio. USD)“ ) ) ,
Y ( : Name ( „Umsatz($M)“ ) ) ,
Gruppe X ( : Firmengröße ) ,
Gruppe Y ( : Typ )
) ,
Elemente ( Punkte ( X , Y , Legende ( 1 ) ) , Glatter ( X , Y , Legende ( 2 ) ) )
) ;
Betreff: Verknüpfung der Daten im Overlay-Diagramm mit der Datentabelle aufhebenVielen Dank, Jeff, für deine Hilfe dabei.Ich habe den Vorschlag von Graph Builder sehr geschätzt.Das wird in meinem speziellen Fall wahrscheinlich nicht funktionieren, da ich es mit einer grafischen Anzeigematrix aus 2 Spalten mal 6 Zeilen zu tun habe und der Graph Builder-Overhead zu viel Platz beansprucht.Es ist jedoch großartig, dieses Beispiel für zukünftige Diagramme zu sehen, die nicht so groß sind und bei denen einige interaktive Funktionen hilfreich wären.
Betreff: Verknüpfung der Daten im Overlay-Diagramm mit der Datentabelle aufhebenIn JMP 10 können Sie einen lokalen Datenfilter verwenden, mit dem Sie filtern können, ohne die ursprüngliche Datentabelle zu beeinträchtigen.
Ich würde auch vorschlagen, Graph Builder anstelle von Overlay Plot zu verwenden.
Hier ist ein Beispiel:
dt = Offen ( „$SAMPLE_DATA\Time Series\Raleigh Temps.JMP“ ) ;
Neues Fenster ( "Mein Fenster" ,
V-Listenfeld (
dt << Graph Builder (
Variablen ( X ( : Name ( "Monat Jahr" ) ) , Y ( : Temperatur ) ) ,
Elemente ( Linie ( X , Y , Legende ( 4 ) , Zeilenreihenfolge ( 0 ) , Zusammenfassende Statistik ( "Bedeuten" ) ) ) ,
Lokaler Datenfilter (
Standort ( { 207 , 385 } ) ,
Filter hinzufügen ( Säulen ( : Jahr ) , Wo ( : Jahr >= 1980 & : Jahr <= 1982 ) ) ,
Modus ( Wählen ( 0 ) , Zeigen ( 1 ) , Enthalten ( 1 ) )
)
) ;
dt << Graph Builder (
Größe ( 570 , 518 ) ,
Variablen ( X ( : Name ( "Monat Jahr" ) ) , Y ( : Temperatur ) ) ,
Elemente ( Linie ( X , Y , Legende ( 4 ) , Zeilenreihenfolge ( 0 ) , Zusammenfassende Statistik ( "Bedeuten" ) ) ) ,
Lokaler Datenfilter (
Standort ( { 207 , 385 } ) ,
Filter hinzufügen ( Säulen ( : Jahr ) , Wo ( : Jahr >= 1982 & : Jahr <= 1990 ) ) ,
Modus ( Wählen ( 0 ) , Zeigen ( 1 ) , Enthalten ( 1 ) )
)
) ;
)
) ;
Betreff: Verknüpfung der Daten im Overlay-Diagramm mit der Datentabelle aufhebenOder verwenden Sie die Idee „Neues Fenster“:
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
Neues Fenster( „Mein Fenster“,
Gliederungsbox( „Meine Gliederungsbox“,
V-Listenfeld(
lo = 9;
hallo = 11;
op1 = Overlay-Plot(
X( :Laufzeit ),
Y( :Oxy ),
Wo( :Runtime >= lo & :Runtime <= hi )
);,
lo = 10;
hallo = 12;
op2 = Overlay-Plot(
X( :Laufzeit ),
Y( :Oxy ),
Wo( :Runtime >= lo & :Runtime <= hi )
);
)
)
);
Betreff: Verknüpfung der Daten im Overlay-Diagramm mit der Datentabelle aufhebenHier ist eine Möglichkeit, die Tagebuchidee zu nutzen.
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
lo = 9;
hallo = 11;
op1 = Overlay-Plot(
X( :Laufzeit ),
Y( :Oxy ),
Wo( :Runtime >= lo & :Runtime <= hi )
);
report(op1)<
jrn = aktuelles Journal();
lo = 10;
hallo = 12;
op2 = Overlay-Plot(
X( :Laufzeit ),
Y( :Oxy ),
Wo( :Runtime >= lo & :Runtime <= hi )
);
jrn << append(report(op2));
Betreff: Verknüpfung der Daten im Overlay-Diagramm mit der Datentabelle aufhebenDanke Leute für die Vorschläge.Beides sind interessante Lösungsansätze für das Problem.Allerdings funktioniert beides nicht für meine spezielle Anwendung, da ich mehrere OPs in einem einzigen VListBox-Fenster erstellen möchte (das habe ich in meinem ursprünglichen Beitrag leider nicht klargestellt).Ich kann anscheinend nicht herausfinden, wie ich einen Ihrer Ansätze dazu umsetzen kann.Irgendwelche Ideen?
Neues Fenster(
V-Listenfeld(
Op1 = Overlay Plot(.....),
Op1 = Overlay-Plot(.....)
)
);
Betreff: Verknüpfung der Daten im Overlay-Diagramm mit der Datentabelle aufhebenDieses Beispiel bietet möglicherweise eine etwas andere Perspektive.
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
lo = 9;
hallo = 11;
Überlagerungsdiagramm(
X( :Laufzeit ),
Y( :Oxy ),
Wo( :Runtime >= lo & :Runtime <= hi )
);
lo = 10;
hallo = 12;
Überlagerungsdiagramm(
X( :Laufzeit ),
Y( :Oxy ),
Wo( :Runtime >= lo & :Runtime <= hi )
);
Betreff: Verknüpfung der Daten im Overlay-Diagramm mit der Datentabelle aufhebenKorrigieren Sie mich, wenn ich falsch liege, aber ich glaube nicht, dass es möglich ist, die Verbindung zwischen einer Plattform und der Datentabelle zu unterbrechen. Der Plot muss aus der Plattform verschoben werden, z. B. in ein Journal oder in ein neues Fenster.
In diesem Beispiel werden beide Methoden verwendet. Die beiden gefilterten Überlagerungsdiagramme werden beide an dasselbe Journal oder an einzelne Fenster gesendet.
Protokoll löschen () ;
dt = Offen ( „$SAMPLE_DATA\Time Series\Raleigh Temps.JMP“ ) ;
// Datenfilterausdruck
filter_expr = Ausdruck (
obj = dt << Datenfilter (
Automatisches Löschen ( 1 ) ,
Schaufenster ( 0 ) ,
Filter hinzufügen (
Säulen ( : Name ( "Monat" ) ) ,
Wo ( : Name ( "Monat" ) >= Datum & : Name ( "Monat" ) <= edate )
) ,
Modus ( Zeigen ( 1 ) , Enthalten ( 1 ) )
) ;
obj << Schließen ;
) ;
// Overlay-Plot
Überlagerung = Ausdruck (
op = Überlagerungsdiagramm (
X ( : Name ( "Monat" ) ) ,
Y ( : Name ( "Temperatur" ) ) ,
Automatische Neuberechnung ( 0 ) ,
Separate Achsen ( 1 ) ,
Connect Thru Missing ( 1 ) ,
Punkte verbinden ( 1 ) ,
SendToReport ( Versenden ( {} , „101“ , ScaleBox , { Hauptraster anzeigen ( 1 ) , Gedrehte Etiketten ( „Automatisch“ )} ) ) ,
unsichtbar
)
) ;
// Erste Handlung
Datum = 1 ; edate = 3 ; filter_expr ; Überlagerung ;
// Neues Fenster...
jetzt = Neues Fenster ( "Monat " || Verkohlen ( Datum ) || „-“ || Verkohlen ( edate ) , Bericht ( op )[ 1 ] ) ;
// oder Tagebuch
op << Tagebuch ;
// Zweiter Plot
Datum = 5 ; edate = 7 ; filter_expr ; Überlagerung ;
jetzt = Neues Fenster ( "Monat " || Verkohlen ( Datum ) || „-“ || Verkohlen ( edate ) , Bericht ( op )[ 1 ] ) ;
op << Tagebuch ;