Coupe transversale d'un tracé 2DComment tracer la variation dans un tracé 2D, par exemple verticalement, dans un tracé linéaire 1D dans JMP ?
Je viens de Matlab (un équivalent dans MATLAB est quelque chose comme ce )
Merci,
Modélisation statistique avancéeAutomatisation et scriptsÉtudes de consommation et de marchéAccès aux donnéesRe : Coupe transversale d'un tracé 2DUne solution est désormais disponible via Barre d'outils du générateur de graphiques

Re : Coupe transversale d'un tracé 2DHa!@ih m'a devancé. J'ai commencé un exemple similaire, mais j'ai ensuite été en réunion pendant trois heures.
Names Default to Here( 1 );
dt = New Table( "Slicing",
Add Rows( 2 ),
New Column( "X",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [-1, 1] )
),
New Column( "Y",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [-1, 1] )
),
New Column( "Z",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
100 + 25 * :X - 3 * :X ^ 2 - 15 * :Y - 5 * :Y ^ 2 - 7 * :X * :Y
)
)
);
dt << Surface Plot(
Columns( :Z ),
Surface Color Theme( "Green to Black to Red" ),
Surface Color Theme2( "Green to White to Red" ),
Surface Color Theme3( "White to Black" ),
Surface Color Theme4( "Blue to Gray to Red" ),
Response Column Color Theme( "Blue to Green to Red" ),
Response Column Color Theme2( "Spectral" ),
Response Column Color Theme3( "Jet" ),
Response Column Color Theme4( "White to Blue" ),
Formula( "Z" ),
Surface Color Method( "Solid", "Solid", "Solid", "Solid" ),
SetVariableAxis( :X, Axis Data( {} ) ),
SetVariableAxis( :Y, Axis Data( {} ) ),
SetZAxis( :Z, Current Value( 95 ), Axis Data( {} ) ),
SetXVariable( :X ),
SetYVariable( :Y ),
Iso Value( 0, 75 ),
Frame3D( Set Rotation( -54, 0, 38 ) )
);
dt << Profiler(
Y( :Z ),
Profiler(
1,
Term Value( X( 0, Lock( 0 ), Show( 1 ) ), Y( 0, Lock( 0 ), Show( 1 ) ) )
),
SendToReport(
Dispatch(
{"Prediction Profiler"},
"10000",
ScaleBox,
{Min( 72.5 ), Max( 125.754437869822 ), Inc( 10 ), Minor Ticks( 0 )}
)
)
);Re : Coupe transversale d'un tracé 2DPouvez-vous publier des exemples de données et le script que vous avez jusqu'à présent ?
Re : Coupe transversale d'un tracé 2DEn outre, le tracé de contour (et non celui du générateur de graphiques, utilisez la plate-forme de contour) peut enregistrer des données quadrillées. Tant que vous souhaitez des tranches verticales ou horizontales, il doit s'agir d'une ligne ou d'une colonne des données quadrillées.
dt = Open( "$sample_data/big class.jmp" );
// step 1: use the contour plot to get a grid of the data
cp = dt << Contour Plot(
X( :height, :weight ),
Y( :age ),
Show Data Points( 0 ),
Fill Areas( 0 ),
Label Contours( 0 ),
Transform( "Range Normalized" ),
Specify Contours( Min( 13 ), Max( 16.5 ), N( 8 ) )
);
nres = 100; // make this bigger if you think there is meaningful data there
dtGrid = cp << generate grid( nres, nres );
cp<<CLOSEWINDOW></CLOSEWINDOW>
// step 2: make the cross section
dtGrid:height<<SETMODELINGTYPE></SETMODELINGTYPE>
Drive the height selector with up and down arrows.Conduisez le sélecteur de hauteur avec les flèches haut et bas.
modifier : les données maillées sont extrapolées au-delà de l'enveloppe des points de données. Les extrémités de la section transversale s’étendent probablement loin dans la plage extrapolée. Vous souhaiterez probablement faire correspondre le tracé de contour (fermé, ci-dessus, peut-être le garder ouvert) à hauteur = 61,5 (etc) pour voir quelle serait la plage valide de poids. Même dans ce cas, le tracé de contour effectue une interpolation linéaire sur les triangles formés par les points de données. Big Class n'est pas particulièrement lisse ou dense, vous voyez donc beaucoup d'artefacts étranges qui génèrent une fausse impression de détail, même à l'intérieur de l'enveloppe des points de données.
Re : Coupe transversale d'un tracé 2DMerci. Mon tracé 2D est basé sur Xdata, Ydata et Data.
Ce que vous montrez avec le filtre de données semble prometteur, mais je n'arrive pas à le faire tracer une tranche à une valeur Xdata (pour toutes les valeurs Ydata).
Je continuerai à regarder de ce côté, mais toute direction sera très utile.
(je suis sur JMP13)
Re : Coupe transversale d'un tracé 2DJe ne sais pas si votre 2D le trace en fonction de points ou d'une formule. S'il s'agit de points, vous pouvez utiliser le générateur de graphiques pour tracer votre valeur cible par rapport à une dimension de votre graphique avec un filtre de données pour définir la « tranche » dans l'autre dimension.

Si vous explorez une formule de colonne, alors je suis d'accord avec @Mark_Bailey que le profileur est l'approche la plus simple. Changez simplement la valeur d’une valeur et voyez le tracé sur l’autre.

Vous trouverez ci-dessous les scripts pour les deux :
Names default to here(1);
dt = Open("$Sample_data/iris.jmp");
New Column("H1_1", Numeric, "Continuous", Format("Best", 12), Set Property("Notes", "Model NTanH(3)"), Formula(TanH(0.5 * ((-3.50407799736543) + -1.69201212624413 * :Sepal length + 4.45798369366822 * :Sepal width))), Set Property("Intermediate", 1));
New Column("H1_2", Numeric, "Continuous", Format("Best", 12), Set Property("Notes", "Model NTanH(3)"), Formula(TanH(0.5 * ((-4.34695576142641) + 0.578814453314083 * :Sepal length + -0.387699136913814 * :Sepal width))), Set Property("Intermediate", 1));
New Column("H1_3", Numeric, "Continuous", Format("Best", 12), Set Property("Notes", "Model NTanH(3)"), Formula(TanH(0.5 * ((-14.9199578715582) + 8.0363609653296 * :Sepal length + -9.32672254743267 * :Sepal width))), Set Property("Intermediate", 1));
New Column("Predicted Petal length", Numeric, "Continuous", Format("Best", 12), Set Property("Notes", "Model NTanH(3)"), Formula(9.72824082889675 + 0.825393378043811 * :H1_1 + 8.38378988028562 * :H1_2 + 1.62929374850912 * :H1_3), Set Property("Predicting", {:Petal length, Creator("Neural")}));
New Window("Plotting points",
H List Box(
Graph Builder(
Size( 522, 456 ),
Show Control Panel( 0 ),
Variables( X( :Sepal length ), Y( :Petal length ) ),
Elements( Points( X, Y, Legend( 295 ) ), Line( X, Y, Legend( 297 ) ) ),
Local Data Filter(
Add Filter(
columns( :Sepal width ),
Where( :Sepal width >= 2.9 & :Sepal width <= 3.1 )
)
)
),
Contour Plot(
X( :Sepal width, :Sepal length ),
Y( :Petal length ),
Show Data Points( 0 ),
Fill Areas( 0 ),
Label Contours( 0 ),
Transform( "Range Normalized" ),
Specify Contours( Min( 2 ), Max( 6 ), N( 5 ) ),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Add Ref Line(
{2.9, 3.1},
"Solid",
"Medium Dark Magenta",
"Slice",
1,
0.25
)}
)
)
)
)
);
//Profiler
Profiler(
Y( :Predicted Petal length ),
Profiler(
1,
Term Value(
Sepal length( 6.302, Lock( 0 ), Show( 1 ) ),
Sepal width( 3.125, Lock( 0 ), Show( 1 ) )
)
),
Expand,
SendToReport(
Dispatch(
{"Prediction Profiler"},
"Profiler",
FrameBox,
{Frame Size( 320, 260 )}
),
Dispatch(
{"Prediction Profiler"},
"Profiler",
FrameBox( 3 ),
{Frame Size( 320, 260 )}
)
)
);
Mise à jour : ajout de formules de colonne pour la colonne de prédiction au script.
Re : Coupe transversale d'un tracé 2DMerci, l'option profileurs semble utile, mais il existe de nombreuses options. Je vais y réfléchir.
Ce que je cherchais, c'est une approche basée sur un script.
Pour un tracé 2D, comment obtenir une tranche x (pour une valeur y donnée) ou une tranche y (pour une valeur x donnée). C'est tout ce que je veux faire pour le moment.Re : Coupe transversale d'un tracé 2DVeuillez consulter le livre dans l'aide JMP sur le Profileurs .