J'ai vu Ce fil une> mais mes données sont un peu différentes. Je souhaite créer un tracé 3D de plusieurs fichiers contenant des coordonnées X, Y, Z et code de couleur < << Code> Len (x) Code> <<< code> len (x [0]) code> <<< code> x [0] .Pape code> <<< code> type (x) code> <<< code> Type (x [0]) code> Je pense que le problème est avec les couleurs code> et une éventuelle inadéquation de tailles p> P> <<< Code> Len (Couleurs) Code> <<< code> len (couleurs [0]) code> Edit2: J'ai pu obtenir cette parcelle, ce qui est agréable que les couleurs soient différentes pour chaque donnée de fichiers, mais le x code>,
y code> et
z code> sont toutes des listes
code> contenant
numpy code> code> réseaux code> p>
16 code> p>
99937 code> p>
(99937,) code> p>
16 code> p>
4 code> p>
RunTimewarning: Valeur non valide rencontrée dans sqrt code> P> P> P> P> P> P> P> P> P> P> P > Modifier: je peux appeler individuellement
dispersion code> et entrez manuellement une couleur différente pour créer la parcelle ci-dessous, mais cela prendrait pour toujours plus de 10 fichiers, donc je le souhaite dans une boucle ou une fonction de la sorte.
p>
z < / Code> L'échelle est trop petite, comparée à la première parcelle et on dirait que les données sont manquantes, elle devrait aimer la première parcelle en termes de valeurs de profondeur code> z code>, mais avec 16 couleurs uniques comme dans la deuxième parcelle. La première parcelle ne fait que troquer 3 fichiers manuellement p>
4 Réponses :
Je pense que vous vous confondez de la liste des mailles que vous mettez à jour à chaque étape. Vous tracez toute la liste des mailles à chaque étape, de sorte que votre premier fichier soit tracé 16 fois, en 16 couleurs différentes.
Le code le plus simple pourrait être: p> si vous souhaitez stocker tous les points d'une liste appelée tel que vous ne traitant que les points correspondant au fichier que vous venez de lire à chaque étape. p> p> maillage code>, vous pouvez la modifier comme : p>
TypeError: 'Mesh' L'objet n'est pas syndicalable code>, aussi je crois que
couleurs [Fichiers ... code> doit être
CMAP [Fichiers ... Code>
Désolé, je ne connais certainement pas la bibliothèque Meshio Code>, j'ai oublié de prendre à
.Points code> attributs de l'objet
maillage code>. Et vous aviez raison sur
CMAP code> et
couleurs code>. J'ai corrigé les deux problèmes.
Comme cela a été mentionné précédemment, le problème que vous rencontrez est quelle boucle la sélection de la couleur se produit.
color = iter(cm.rainbow(np.linspace(0, 1, len(files)))) for file in files: d = next(color) #set the color for each file instead of inside the loop mesh.append(meshio.read(file)) x = [m.points[:, 0] for m in mesh] y = [m.points[:, 1] for m in mesh] z = [m.points[:, 2] for m in mesh] for a,b,c in zip(x,y,z): plt.scatter(a,b,c,color=d)
Si vous n'avez pas besoin des mailles de maillage, vous pouvez éviter d'attribuer un tas de mémoire ou, si vous avez besoin des mailles ensuite, nous pouvons utiliser un conteneur p> ...
meshes = []
colors = iter(cm.rainbow(np.linspace(0, 1, 16)))
for file in files:
meshes.append(meshio.read(file))
plt.scatter(*meshes[-1].points.T, c=[next(colors)], label=file)
plt.legend()
plt.show()
Merci! Quel est le .t code> dans ce cas?
array.t code> est la transposition du tableau, il est également défini pour les tableaux multidimensionnels, mais dans le cas simple d'une matrice 2D, il modifie la forme de, disons
(m, n) Code> à
(n, m) code> selon cette règle
array.t [j, i] = tableau [i, j] code>
Avez-vous déjà reçu cette erreur: ValueError: ne peut pas remodeler la taille de la taille 259644 dans la forme (93347,3) code>, sans savoir si je devrais poser une nouvelle question avec elle
Non, ne posez pas une nouvelle question: 93347 * 3 → 280041 ≠ 259644 Code>
Ce code ci-dessous fonctionne actuellement pour moi, pour la plupart.
J'ai changé J'ai également changé en Merci à l'aide de tout le monde! Je vais travailler avec ceci pour l'instant. p> plt.Scatter ... code> à
ax.scatter ... code> et Il a fixé le problème de mise à l'échelle Z-Axe que j'ai mentionné dans EDIT 2 FORT> ci-dessus. P>
AX = AXES3D (FIG) CODE> P>
Voulez-vous une couleur différente pour chaque fichier ou pour chaque parcelle de dispersion? Est-ce que la boucle
pour a, b, c, d dans zip (x, y, z, couleurs): code> en boucle sur les différents points de l'ensemble des points? Sont, x, y, z 1d gray?
@Liris Si vous regardez la deuxième image, je viens d'ajouter, chaque couleur représente toutes les données de fichier. Chaque couleur est un fichier différent, tracé sur le même tracé de dispersion en 3D. Cela a-t-il du sens?
Quelles sont les dimensions de x, y, z comme vecteurs?
@Liris
x [0] .shape code> ==
(99937,) code>, et il y a 16
ndarrays code> de cette forme dans chaque
x code> liste, qui s'applique à
y code> et
z code> aussi.
couleurs.shape code> ==
(16,4) code>,
couleurs [0] .Pache code> ==
(4,) code >
Pourriez-vous confirmer que si
data = meshio.read (fichier) code>, alors data.points est un tableau (N, 3) où n est le numéro de point du fichier
code >?
@Liris confirmée!
maillage.points.shape code> ==
(99937, 3) code>, et c'est pour un fichier