2010-02-16 7 views
2

Comment est-il possible de joindre des points d'un nuage de points après un tracé et de faire une ligne à partir d'un tracé en pointillés?joignant les points d'un nuage de points et créant une ligne

+0

Cela ne fera-t-il pas juste une parcelle régulière? De quelle manière (au fur et à mesure que x augmente?) Voulez-vous joindre des points dans un tel complot? – Rook

+0

Vous avez changé le tag de matlab à maple. Comme il n'y avait aucune référence à quel outil utilisez-vous, nous avons supposé que c'est matlab. Je recommanderais de créer une nouvelle question avec un étiquetage approprié afin que vous puissiez obtenir plus rapidement la réponse des experts en érable. Et soyez plus précis pour nous de ne pas faire d'hypothèses. – yuk

Répondre

5

Je devine que vous avez généré un nuage de points de x et y des coordonnées par,

plot(x,y,'.'); 

Rejoignez-les avec

plot(x,y,'.'); 
hold on; 
plot(x,y,'-'); 

Ou dans une commande

plot(x,y,'.-'); 

Est-ce Ce que vous vouliez?

3

Si vous avez un tracé existant en tant que nuage de points, vous ne pouvez pas simplement simplement joindre les points sans savoir quels points sont connectés aux autres.

Si vous connaissez l'ordre/la connectivité des points, vous pouvez simplement utiliser la fonction plot pour le faire en premier lieu. L'appel

plot(x,y,'-') 

connectera les points avec des segments de ligne droite. Si vous souhaitez utiliser un symbole de marqueur à chaque point le long de la ligne, vous pouvez ajouter l'un des marqueurs parcelle permet, comme ceci:

plot(x,y,'o-') 

Vous pouvez obtenir une liste des marqueurs possibles à partir de

help plot 

Si vous avez utilisé la dispersion sur un ensemble de points, et souhaitez maintenant superposer une ligne reliant les points, utilisez la fonction de maintien pour forcer matlab à tracer au-dessus du nuage de points. Par exemple,

scatter(x,y) 
hold on 
plot(x,y,'-') 
hold off 

Encore une fois, l'une de ces variations nécessite que vous connaissiez la connectivité entre les points. Certains schémas peuvent parfois fonctionner pour récupérer cette connectivité à partir d'une liste de points isolés. L'une de ces méthodes est appelée CRUST, souvent utilisée pour la reconstruction de surface 3D. J'ai trouvé beaucoup de références par une simple recherche de "algorithme de croûte".

1

Si vous avez un nuage de points (fait avec la fonction de dispersion Je soupçonne) et pour une raison quelconque ne voulez pas redessiner avec intrigue, voici ce que vous pouvez faire pour relier les points:

h = findobj(gca,'type','hggroup'); 
hold on 
for k=1:numel(h) 
    x = get(h(k),'xdata'); 
    y = get(h(k),'ydata'); 
    plot(x,y,'-') 
end 
hold off 

Les points seront connectés par leur ordre d'origine. Si vous voulez, vous pouvez trier les données avant parcelle, par exemple x:

[x,ind] = sort(x); 
y = y(ind); 
0

Pour répondre à la question de savoir comment faire en Maple, vous pouvez simplement utiliser la commande PointPlot du package Statistics avec l'option style défini sur line ou pointline. Par exemple:

Statistics:-PointPlot([2, 4, 6, 4], xcoords=[1, 2, 3, 4], style=pointline); 

Avec l'option style = pointline résume les points et une ligne de connexion; style = line montre juste la ligne.

Questions connexes