Générateur de graphiques avec des valeurs absentes du tableau de donnéesBonjour,
J'essaie de faire en sorte que mon script représente graphiquement des valeurs qui ne figurent pas dans une table de données mais qui sont générées lors de l'exécution du script. Le programme commence par un import de données dans deux colonnes semblable à ceci :
| Position | FocusMetrique |
| 0 | 120 |
| -4 | 140 |
| -8 | 165 |
| -4 | 160 |
| -0 | 130 |
J'ajuste ensuite une spline vers le haut/le bas des données et détermine le décalage entre les deux. Le problème survient lorsque j'essaie de représenter graphiquement les données. GraphBuilder ne trouve pas les variables car elles ne figurent pas dans la table de données. Voici mon code, tout semble fonctionner jusqu'à GraphBuilder. J'essaie d'obtenir un graphique linéaire de décalage, splineEval et un marqueur pour le jeu, splineMin. Toute autre suggestion est appréciée, c'est une nouvelle langue pour moi !
//Setup arrays for creating spline over data
x = Index(-100,0,1);
offset = Index(-20,20,0.1);
//Determine position minimum index
rPosMin = dt << GetRowsWhere(:Position == ColMin(:Position));
//Create spline coeficients over up/down scan of data
splineUp = SplineCoef(:Position[1::rPosMin-1], :FocusMetric[1::rPosMin-1], 1);
splineDown = SplineCoef(:Position[rPosMin+1::NRow()], :FocusMetric[rPosMin+1::NRow()], 1);
//Create array of least squares
for( i=1, i<=length(offset), i++,
s[i] = Sum(Abs(SplineEval(x,splineDown) - SplineEval((x-offset[i]),splineUp))),
);
//Create spline coefficient over regressed data
si = SplineCoef(offset,s,1);
//Find minimum from regressed data and determine backlash
rSplineMin = Loc(SplineEval(offset,si) == Minimum(SplineEval(offset,si)));
backlash = offset[rSplineMin];
print(backlash);
GraphBuilder(
ShowControlPanel(0),
Variables(
X(offset),
X(backlash, Position(1)),
Y(Values(SplineEval(offset,si))),
Y(rSplineMin, Position(1))
),
Elements(Line(X(1), X(2), Y(1), Y(2), Legend(5)))
);
Re : Générateur de graphiques avec des valeurs absentes du tableau de donnéesÇa marche. Merci pour votre aide!
Re : Générateur de graphiques avec des valeurs absentes du tableau de donnéesJe pense qu'il serait plus facile d'ajouter les valeurs minimales sous forme de ligne dans le tableau. Les points de spline auraient une valeur de Spline et le point supplémentaire une valeur de Backlash, puis l'appelleraient comme un type spécial d'élément GraphBuilder.Cette courbe peut paraître étrange car elle utilise vos données d'exemple.Le script est joint.

Re : Générateur de graphiques avec des valeurs absentes du tableau de donnéesOk, je peux faire ça.Une fois que je les ai dans une table de données, est-il possible de sélectionner un point à utiliser comme marqueur sans avoir à créer une nouvelle colonne pour chaque point individuel ? J'essaie de mettre un marqueur sur le point minimum mais lorsque j'essaie de définir X, Y dans GraphBuilder à cet index, j'obtiens l'erreur "Colonne spécifiée introuvable dans la table de données".
GraphBuilder(
ShowControlPanel(0),
Variables(
X(:xoff),
X(:xoff[rSplineMin], Position(1)),
Y(:spline),
Y(:spline[rSplineMin], Position(1))
),
Elements(Line(X(1), X(2), Y(1) Y(2), Legend(3))),
Comment pourrais-je créer un script pour sélectionner ce point unique et y placer un marqueur ?
Re : Générateur de graphiques avec des valeurs absentes du tableau de donnéesLes plateformes JMP Analysis et Grpah nécessitent des colonnes provenant d'une table de référence.
Créez un tableau à partir des valeurs matricielles calculées, de décalage, de jeu, etc., puis définissez GraphBuilder à l'aide de ce nouveau tableau.