Essayer de tracer un 3 graphique tridimensionnel avec:tracé 3D avec l'axe catégorique [python/Matplotlib]
axe x - Valeurs (float) axe y - Valeurs (float) d'axe z - Catégorie (string)
maintenant, j'ai essayé de convertir le vecteur z en utilisant pandas.factorize (table.zcolumn)
Output: (array([ 0, 0, 0, ..., -1, -1, 1]), Index([u'London', u'National'], dtype='object'))
Je peux donc tracer les chiffres sans problème. Vous verrez qu'il y a des valeurs NaN qui se convertissent en -1, donc quand je trace le graphique, il y a un tas de valeurs à -1. Les données contiennent les catégories London, National et NaN.
Comment puis-je étiqueter les axes pour les adapter à mes données? Je pense qu'il devrait y avoir une fonction simple pour le faire correspondre.
Sur l'axe z je dois réattribuer les tiques -1 pour devenir « NA », 0 pour devenir « Londres » et 1 pour devenir
« National »Je serais également intéressé par un moyen pour faire cela avec un grand nombre de catégories, de sorte que le code qui n'a pas besoin entrer manuellement chaque chaîne de catégorie
regions = pandas.factorize(dataTable.Region[id_range])
regions_num = regions[0]
fig = plot.figure()
ax = fig.add_subplot(111,projection='3d')
ax.scatter(y, x, zs=regions_num)
ax.axes.set_zticklabels(["London","National","N/A"])
plot.show()
Cela fonctionne merci. Je vois totalement ce que vous voulez dire dans le deuxième point. Mais je l'utilise principalement comme un exercice de codage. D'une manière ou d'une autre, je n'arrive pas à définir les étiquettes comme des chaînes bien que? Puis-je ne pas utiliser ax.axes.set_zticklabels (regions [1] [:]) pour définir chaque étiquette de tick? C'est tout imprimer les uns sur les autres à la minute – darkace
@darkace, qu'est-ce que 'regions [1] [:]'? –