Wie füge ich zwei verschiedene Diagrammtypen horizontal zu einem Journal zusammen?
////////////////////////////////////////Makes 'N' overlay plots. One each for each "Parameter Name"////////////////////////////////////////////////////////
overlayplot = table1 << Overlay Plot(
X( :column1 ),
Y( :Name( "Mean(Parameter Value)" ) ),
Grouping( :GROUP ),
SendToByGroup(
{:Parameter Name == Eval( :Parameter Name )},
Overlay Groups,
Connect Thru Missing( 1 ),
Connect Points( 1 ),
:Name( "Mean(Parameter Value)" )(Overlay Marker( 8 ), Line Width( "Thick" ))
),
By( :Parameter Name ),
);
////////////////////////////////////////Makes 'N' Oneway plots. One each for each "Parameter Name"////////////////////////////////////////////////////////
ttest_plot = table1 << Oneway(
Y( :Name( "Mean(Parameter Value)" ) ),
X( :GROUP ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0 ),
Box Plots( 1 ),
Mean Diamonds( 0 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg(
Box Plot Seg( 1 ),
{Box Type( "Outlier" ), Confidence Diamond( 0 ),
Shortest Half Bracket( 0 ), Line Color( "Red" )}
), DispatchSeg(
Box Plot Seg( 2 ),
{Box Type( "Outlier" ), Confidence Diamond( 0 ),
Shortest Half Bracket( 0 ), Line Color( "Red" )}
)}
)
),
By( :Parameter Name )
);
Der obige Code erstellt eine gleiche Anzahl von Overlay- und Oneway-Plots aus meinen Daten. Es gibt 84 eindeutige "Parameternamen", also erhalte ich 84 Overlay-Plots und 84 Oneway-Plots.
Ich versuche, sie in einem Journal zu kombinieren, so dass ich für jeden Parameter den Einweg-Plot direkt neben dem Overlay-Plot bekomme ... und dann vertikal nachfolgende Plots.
Wie kann ich das machen?
Das ist die Ausgabe die ich brauche

Dies ist die Ausgabe, die ich bekomme

@txnelson #JMP
GrafikSkriptingBetreff: Wie füge ich zwei verschiedene Diagrammtypen horizontal zu einem Journal zusammen?Sie können versuchen, sie mit der H-Listenbox nebeneinander zu platzieren, werden jedoch höchstwahrscheinlich auf einige Probleme mit der Größe verschiedener Berichte stoßen und müssen damit irgendwie umgehen. Unten ist ein Beispiel mit zwei verschiedenen Optionen, die eine Idee dazu geben könnten (ich habe nicht wirklich Zeitschriften verwendet, daher könnte dieser Teil des Beispiels etwas schlecht sein):
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
/*with by*/
graph1 = Expr(dt << Oneway(Y(:height), X(:age), By(:sex)));
graph2 = Expr(dt << Graph Builder(
Show Control Panel(0),
Show Legend(0),
Variables(X(Transform Column("Row", Formula(Row()))), Y(:height), Group Y(:age)),
Elements(Points(X, Y, Legend(1))),
By(:sex)
));
nw = new window("",
h list box(
vlistbox(graph1),
vlistbox(graph2)
)
);
nw << journal window;
nw << close window;
stop();
/* without by*/
graph1 = Expr(dtTemp << Oneway(Y(:height), X(:age)));
graph2 = Expr(dtTemp << Graph Builder(
Show Control Panel(0),
Show Legend(0),
Variables(X(Transform Column("Row", Formula(Row()))), Y(:height), Group Y(:age)),
Elements(Points(X, Y, Legend(1)))
));
nw = new window("",
vlb = v list box();
);
nw << Journal Window;
nw << close window;
byVals = Associative Array(dt:sex) << get keys;
For(i = 1, i <= N Items(byVals), i++,
dt << Select Where(:sex == byVals[i]);
dtTemp = dt << Subset(Selected Rows, all columns);
hlb = V List Box(
TextBox(byVals[i]),
Lineup box(N Col(2),
graph1,
graph2
)
);
hlb << Journal;
Close(dtTemp, no save);
);
Betreff: Wie füge ich zwei verschiedene Diagrammtypen horizontal zu einem Journal zusammen?Hier ist eine Überarbeitung Ihres Skripts, von der ich glaube, dass sie Ihnen einen guten Start in Ihr Skript geben wird

Names Default To Here( 1 );
dt = Open( "$sample_data/big class.jmp" );
overlayplot = dt << Overlay Plot(invisible,
X( :height ),
Y( :Name( "weight" ) ),
Grouping( :sex ),
SendToByGroup(
{:age == Eval( :age )},
Overlay Groups,
Connect Thru Missing( 1 ),
Connect Points( 1 ),
:Name( "weight" )(Overlay Marker( 8 ), Line Width( "Thick" ))
),
By( :age )
);
////////////////////////////////////////Makes 'N' Oneway plots. One each for each "Parameter Name"////////////////////////////////////////////////////////
ttest_plot = dt << Oneway(invisible,
Y( :weight ),
X( :sex ),
Normal Quantile Label( 0 ),
Box Plots( 1 ),
X Axis Proportional( 0 ),
Points Jittered( 1 ),
by( :age ),
SendToReport(
Dispatch(
{},
"Oneway Plot",
FrameBox,
{DispatchSeg(
Box Plot Seg( 1 ),
{Confidence Diamond( 0 ), Line Color( "Red" )}
), DispatchSeg(
Box Plot Seg( 2 ),
{Confidence Diamond( 0 ), Line Color( "Red" )}
)}
)
)
);
// Create the output window
nw = new window("The Output", lub = lineup Box( NCol(2)));
// Find the numeber of by groupws
summarize(dt, bygroups = by(:age));
numByGroups = nitems(bygroups);
For(i=1,i<=numByGroups,i++,
lub<<APPEND></APPEND>
Hinweis: Ich habe die Größe der Overlay-Plots manuell reduziert, Sie müssen die JSL hinzufügen, um die Framegröße richtig einzustellen.
Betreff: Wie füge ich zwei verschiedene Diagrammtypen horizontal zu einem Journal zusammen?Danke. Hat perfekt funktioniert. Nur um die Rahmengröße einzustellen.