versuchen Sie Variante=3; // 1-3 (kein Einfluss auf das Timing) try Command=1; // 1: Heatmap, 2: Punkte (~ Faktor 10 schneller) Gruppen = 500; Variante = {"Kontinuierlich", "Ordinal", "Nominal"}[tryVariant]; myCommand={Expr(Elements( Heatmap( X, Y, Legend( 17 ) ) )),Expr(Elements( Points( X, Y, Legend( 17 ) ) ))}[tryCommand]; dt = Neue Tabelle( "dt" ); Eval( Eval Ausdr( Neue Spalte( "X", Numerisch, Ausdr( Variante ), Format( "Best", 12 ), Formel( Floor( Modulo( (Row() - 1), 10000 ) / 100 ) ) ) ) ); Eval( Eval Expr( New Column( "Y", Numeric, Expr( Variante ), Format( "Best", 12 ), Formula( Modulo( (Row() - 1), 100 ) ) ) ) ); New Column( "group", Numeric, "Nominal", Format( "Best", 12 ), Formula( Floor( (Row() - 1) / 10000 ) ) ); New Column( "value", Numeric, "Continuous", Format( "Best", 12 ), Formula( Random Normal( 0, 0.001 ) + If( Random Integer( 10000 ) < 5, 1, 0 ) ), ); dt << Zeilen hinzufügen (10000 * Gruppen, am Ende); New Window( "warte ...", < alle Gruppen werden geplottet // überraschend: der Datenfilter im GraphBuilder zeigt diesen Effekt nicht ... start1 = Today(); Eval(Eval Expr(New Window( "Data Filter Context Box", Data Filter Context Box( H List Box( dt << Data Filter( Local, Add Filter( Spalten( :Gruppe ), Where( :Gruppe == As List( 0 :: 4 )[1] ), Display( :group, N Items( 4 ), Find( Set Text( "" ) ) ) ) ), dt << Graph Builder( Size( 400, 400 ), Control Panel anzeigen( 0 ), Graph Spacing( 5 ), Variables( X( :X ), Y( :Y ), Wrap( :group ), Color( :value ) ), Ausdr(myCommand), SendToReport( Dispatch( {}, "X", ScaleBox, {Min( 0 ), Max( 100 ), Inc( 10 ), Minor Ticks( 9 )} ), Dispatch( {}, " Y", ScaleBox, {Min( 0 ), Max( 100 ), Inc( 10 ), Minor Ticks( 9 )} ), Dispatch( {}, "400", ScaleBox, {Legend Model( 17, Properties( 0, {Farbverlauf( {Farbthema( "Schwarzer Körper")), Skalenwerte( [0 1 ] ), Reverse Gradient( 1 )} )}, Item ID( "value", 1 ) ) )} ) ) ) ) ) ))); stop1 = Heute (); Print( "Kontextfeld Datenfilter: ", stop1 - start1 ); New Window( "warten ...", <berechnete< Zeitunterschied viel kleiner, aber es dauert genauso lange, bis der Graph Eval(EvalExpr(New Window( "Data Filter inside GraphBuilder", dt << Graph Builder( Size ( 400, 400 ), Bedienfeld anzeigen ( 0 ), Diagrammabstand ( 5 ), Variablen ( X ( : X ), Y ( : Y ), Umbruch ( : Gruppe ), Farbe ( : Wert ) ), Ausdruck (meinBefehl) , Local Data Filter( Filter hinzufügen( Spalten( :Gruppe ), Where( :Gruppe == As List( 0 :: 4 )[1] ), Display( :group, N Items( 15 ), Find( Set Text( " " ) ) ) ) ), SendToReport( Dispatch( {}, "X", ScaleBox, {Min( 0 ), Max( 100 ), Inc( 10 ), Minor Ticks( 9 )} ), Dispatch( {}, " Y", ScaleBox, {Min( 0 ), Max( 100 ), Inc( 10 ), Minor Ticks( 9 )} ), Dispatch( {}, "400", ScaleBox, {Legend Model( 17, Properties( 0, {Farbverlauf ({Farbthema ("Schwarzer Körper")), Skalenwerte ([0 1] ), Farbverlauf umkehren (1)} )}, Element-ID ("Wert", 1 ) ) )} ) ) ) ))); stop2 = Heute (); Print( "lokaler Datenfilter im Graphbuilder: ", stop2 - start2 );