2011-04-17 4 views
10

J'ai un fichier de données qui contient un tas de x, y et zpoints. Je voudrais utiliser gnuplot pour tracer ces points with pm3d mais cela nécessite que j'allume set dgrid 10,10,1 (le nombre devrait être différent). Le problème est que mes données sont déformées (les points ne se trouvent pas sur la surface pm3d lorsque je les trace ensemble).comment utiliser `dgrid3d` dans` gnuplot` correctement?

Comment utiliser dgrid3d? Les points sont générés à partir d'un programme c++, donc je peux choisir l'espacement x et y moi-même.

Mes données ressemble à ceci:

# X Y Z 
    1 2 3 
    2 2 4 
    ... 

Je voudrais que ce soit une surface colorée qui traverse ces points dans l'espace 3D. Les données x et y sont espacées uniformément, tandis que les données z sont une fonction de x et y points.

+0

1. Pourriez-vous poster une petite section de votre fichier de données 2. À quoi devrait ressembler votre intrigue finale? Points dans l'espace 3D, une carte de contour, des points connectés, ... – Woltan

+0

@ woltan: Fait! – romeovs

+0

wow. cette question a le badge 'question populaire' (1k vues) et pas un seul upvote. – romeovs

Répondre

8

Si vous avez vos données dans un fichier Data.dat puis pour cette solution:

set dgrid3d 10,10 
set style data lines 
set pm3d 
splot "Data.dat" pal 
  • Le dgrid3d tells GNUplot combien d'entrées il y a dans le x et y direction (ce sont les deux paramètres séparés par des virgules)
  • le style data lines permet terrain gnuplot le résultat avec des lignes au lieu de les points
  • le pm3d remplit la surface avec une couleur (si vous laissez cette distance vous me contenterai voir les lignes)
  • pal fait les lignes apparaissent dans la couleur de la valeur spécifiée

Il y a beaucoup plus d'options que vous pouvez définir, mais je trouve les plus pertinents.

+0

Ok, ma question visait en fait à utiliser 'dgrid3d'? Quels devraient être les chiffres? – romeovs

+0

Les nombres spécifient le nombre d'éléments dans les directions x et y. Donc, si vous avez 20 valeurs x et 10 valeurs y, alors spécifiez les paramètres dans dgrid comme 20, 10 – Woltan

+0

J'ai des données 100x100, mais quand j'utilise 'dgrid3d 100,100,1' cela délivre un tracé déformé (l'intrigue est évanoui à certains moments). Utiliser 'dgrid3d 100,100,3' donne la surface qui passe par les points, mais la surface est irrégulière là où elle ne devrait pas l'être. – romeovs