2013-04-19 5 views
0

Le fichier de données comporte 3 colonnes, correspondant à (x, y, z) et le style est défini pour pouvoir dessiner une surface 3D.Gnuplot: Comment obtenir la coordination (x, y, z) du point dont la valeur z est le maximum?

Je trouve que la commande GPVAL_DATA_Z_MAX peut donner la valeur max z, et je veux trouver la gauche x, y du point max, bien qu'il y ait peut-être plus d'un point possédant le z maximum. Donc, j'utilise GPVAL_DATA_X_MAX, GPVAL_DATA_Y_MAX, mais je reçois la mauvaise position, parce que les trois colonnes sont irrelavent, ces deux commandes fonctionnent comme GPVAL_DATA_Z_MAX. Alors, comment puis-je trouver le (x, y, z) du point dont la valeur z est le maximum?

Répondre

1

Vous pouvez faire un autre tracé (temporaire), qui affiche uniquement le point où z est max.

Je fais comme ça:

plot "Datafile" using ($3==GPVAL_DATA_Z_MAX?$1:NaN):($3==GPVAL_DATA_Z_MAX?$2:NaN):3 

Cela ne complotent point (s) où z = GPVAL_DATA_Z_MAX.

Après cette parcelle GPVAL_DATA_X_MAX et GPVAL_DATA_Y_MAX auront les valeurs qui appartiennent à().

+0

Merci! Je souhaite vraiment gnuplot pourrait plus une telle méthode, et votre solution est si intelligente! – archenoo

+0

De rien! En passant, j'utilise aussi set table "/ dev/null" si je ne veux pas que le tracé temporaire soit affiché. table 'set "/ dev/null" intrigue ... unset table' – psibar

+0

merci pour votre suppliment !! – archenoo

Questions connexes