tracer la dispersion 3d dans matplotlib
J'ai une collection de Nx3 matrices dans scipy/numpy et je voudrais faire un 3 dimensions de dispersion, où sont les axes X et Y sont déterminées par les valeurs de la première et deuxième colonnes de la matrice, la hauteur de chaque barre est la troisième colonne de la matrice, et le nombre de barres est déterminé par N.
Chaque matrice représente un groupe de données et je veux que chaque être représentée par une couleur différente, puis de définir une légende pour la figure entière.
J'ai le code suivant:
fig = pylab.figure()
s = plt.subplot(1, 1, 1)
colors = ['k', "#B3C95A", 'b', '#63B8FF', 'g', "#FF3300",
'r', 'k']
ax = Axes3D(fig)
plots = []
index = 0
for data, curr_color in zip(datasets, colors):
p = ax.scatter(log2(data[:, 0]), log2(data[:, 1]),
log2(data[:, 2]), c=curr_color, label=my_labels[index])
s.legend()
index += 1
plots.append(p)
ax.set_zlim3d([-1, 9])
ax.set_ylim3d([-1, 9])
ax.set_xlim3d([-1, 9])
Le problème est que ax.les diagrammes de dispersion des choses avec une transparence et j'aimerais que supprimer. Aussi, je tiens à définir la xticks et yticks et zticks-comment puis-je le faire?
Enfin, la légende d'appel n'apparaît pas, même si je suis d'appeler label="" pour chaque scatter appel. Comment puis-je obtenir la légende apparaissent?
merci beaucoup pour votre aide.
source d'informationauteur user248237dfsf
Vous devez vous connecter pour publier un commentaire.
Essayez de remplacer 'ax.scatter' ax.complot', peut-être avec le " o " de paramètre pour obtenir similaire cercles. Cette mise à jour corrige la transparence et de la légende.
J'ai ajouté quelques lignes et quelques réglages pour obtenir des exemples de données et obtenir le reste de votre démonstration de travail. Je suppose que vous serez en mesure de le faire fonctionner.
Réglage de l'tiques nécessite août 2010 mise à jour mplot3d comme décrit ici. J'ai téléchargé la dernière mplot3d de Sourceforge. Je ne suis pas tout à fait sûr si Matplotlib 1.0.1 contient cette dernière mise à jour que je suis toujours en cours de la version 2.6 de Python avec Matplotlib 1.0.0.
Modifier
Un rapide et sale factice de la parcelle pour les légendes, tout en gardant la 3d effet de transparence que vous obtenez à partir de nuages de points:
Autant que je sache, les légendes 3d pour disperser les artistes ne sont pas directement pris en charge. Voir ici:
http://matplotlib.sourceforge.net/users/legend_guide.html#plotting-guide-legend
Cependant, vous pouvez utiliser un hack/travail avec un "proxy artiste", en utilisant quelque chose comme:
De sorte que le proxy de l'artiste ne sera pas ajouté à l'axe, mais vous pouvez l'utiliser pour créer une légende.
Réglage de la kwarg depthshade=False fixe pour moi: