Si vous avez déjà une courbe donnée, Comment pouvez-vous utiliser le code pour restaurer près des données.
Définissez le nombre de données connues et les valeurs maximales et minimales des données
Il semble avoir une fonction d'intelligence artificielle.
Merci les experts!

Je dois admettre que je ne comprends pas assez la question pour commencer à proposer une réponse. Si la courbe est un peu une peinture de carte (fichier .png), alors je ne peux pas imaginer que JMP soit également le droit d'essayer de la lire. Êtes-vous à la recherche d'un logiciel de numérisation et de reconnaissance optique?
Dans quel format est la courbe? Essayez-vous de lire la courbe rouge ou essayez-vous de lire le texte numérique au bas de l'image?
Peut-être qu'en affirmant que JMP ne peut pas le faire, je suis sur le point d'apprendre une fonctionnalité sur JMP dont je ne suis pas au courant.
À propos, je dois mentionner que si vous ne vous souciez pas de la moyenne sur les pixels (la ligne du graphique a ici plusieurs pixels d'épaisseur dans chaque colonne) et que vous recherchez simplement une approximation, le traitement (dans cet exemple particulier) être beaucoup plus rapide et moins encombré de tableaux de données. Comme vous le verrez, le graphique que vous obtenez est fondamentalement le même.
</CODE></P>
<PRE><CODE class=" language-jsl">names default to here(1);
New Window( "Example",
pb = Picture Box( Open( "/Users/homer.simpson@jmp.com/Downloads/graphPic.png", png ) )
);
pixMat = (pb << get image) << get pixels;
pixMat = pixMat[20 :: 265, 15 :: N Col( pixMat )];
nc = N Col( pixMat );
x = (1 :: nc)`;
y = J( nc, 1, . );
For( i = 1, i <= nc, i++,
y[i] = Loc Min( pixMat[0, i] )
);
y = nrow( pixMat ) - y; //"flip" y-vals to account for screen coordinate convention.
dt = As Table( x || y, <<COLUMN names=""></COLUMN>
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-382962" slang="en-US">Re : JSL peut-il restituer la valeur de la courbe ?</LINGO-SUB><LINGO-BODY id="lingo-body-382962" slang="en-US"><P>Ce n'est pas toujours facile mais peut éventuellement être fait, selon le graphique. Voici une façon de procéder pour le graphique que vous avez fourni. Il existe peut-être des moyens plus efficaces, car je n'ai aucune expérience en traitement d'images - toutes mes excuses.</P>
<P> </P>
<P>L'idée est d'obtenir les valeurs de pixels de l'image et de se concentrer sur les différences entre l'arrière-plan et le graphique. Dans ce cas, la couleur du graphique était le minimum dans n'importe quelle colonne de pixels. Dans d'autres cas, vous devrez peut-être dériver une sorte de filtre passe-bande, etc. Pour un arrière-plan multicolore, même cette approche pourrait ne pas fonctionner si la couleur du graphique était la même que l'une des couleurs de l'arrière-plan. En tout cas, essayez ceci.</P>
<P> </P>
<P>C'est une approche grossière mais qui devrait vous donner un point de départ. Nettoyer/lisser les données n'est pas si difficile à faire après coup. Je suis sûr que d'autres trouveront également de nombreuses façons d'améliorer l'approche et les performances.</P>
<P> </P>
<P>REMARQUE : je n'ai pas redimensionné x et y. Encore une fois, ce n'est pas difficile à faire une fois que vous avez la matrice jusqu'aux données du graphique.</P>
<P> </P>
<P>J'ai joint le fichier .png que j'ai utilisé pour que vous puissiez utiliser le même fichier que moi.</P>
<P> </P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="brady_brady_0-1620328935156.png" style="width: 999px;"><IMG src="https://us.v-cdn.net/6038925/uploads/images/32659i25847C5EFC991944/brady_brady_0-1620328935156.png" role="button" title="brady_brady_0-1620328935156.png" alt="brady_brady_0-1620328935156.png" /></SPAN></P>
<P> </P>
<P> </P>
<P> </P>
<P> </P>
<P>Acclamations,</P>
<P>Brady</P>
<PRE><CODE class=" language-jsl">
Names Default To Here( 1 );
//need to save image and put the file path in the open() function.
New Window( "Example", pb = Picture Box( Open( "/Users/brady.brady@jmp.com/Downloads/graphPic.png", png ) ) );
img = pb << get image;
pixMat = img << get pixels;
pixMat = 1000*(floor(pixMat/1000)); //smooths values; use whatever factor you like
dt = astable(pixmat);
eval(substitute (
expr(dt << new column("Row", formula( _ROW_ - :row()))), //low rows for pixels are high. This is a fix for that.
expr(_ROW_),
nrow(dt)
));
dt:row << Delete Formula;
dt << move selected columns({"Row"}, to first);
dt << select where (:row() <= 20 | :row() >= 265) << Delete Rows; // top and bottom few rows of this table are not useful
stackCols = (dt << get column names)[14::ncol(dt)];
dtStack = dt << Stack(
columns( stackCols ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
"Non-stacked columns"n( Keep( :Row ) )
);
dtStack << select where (:data == col minimum(:data, :label)); //in this case, minimum color is the graph.
dtSub = dtStack << subset(selected rows(1), selected columns (0));
dtSub << new column("x", formula(num(substitute(:label, "Col", ""))));
summarize(dtSub, b = by(:label), yVals = mean(:Row), xVals = mean(:x));
astable(xvals || yvals, <<COLUMN names=""></COLUMN>