marque las posiciones de la etiqueta para matplotlib gráfico 3D

Estoy tratando de averiguar cómo configurar / corregir la posición de las tags de tic para un gráfico de matplotlib 3D. Las tags de tick no se alinean con los ticks. El problema parece ser especialmente importante cuando se requieren muchas tags de tick.

He modificado un ejemplo ( http://matplotlib.org/examples/mplot3d/polys3d_demo.html ) de la documentación de matplotlib para ilustrar mi pregunta.

from mpl_toolkits.mplot3d import Axes3D from matplotlib.collections import PolyCollection from matplotlib.colors import colorConverter import matplotlib.pyplot as plt import numpy as np fig = plt.figure(figsize=(10,10)) ax = fig.gca(projection='3d') cc = lambda arg: colorConverter.to_rgba(arg, alpha=0.6) xs = np.arange(0, 10, 0.4) verts = [] zs = np.arange(50) for z in zs: ys = np.ones(len(xs))*z ys[0], ys[-1] = 0, 0 verts.append(list(zip(xs, ys))) poly = PolyCollection(verts,facecolor='c') poly.set_alpha(0.7) ax.add_collection3d(poly, zs=zs, zdir='y') ax.set_xlabel('X') ax.set_xlim3d(0, 10) ax.set_ylabel('Y') ax.set_ylim3d(-1, len(zs)) ax.set_yticks(np.arange(len(zs))) labels = {} for l_c in zs: labels[l_c] = 'This Looks Bad' ax.set_yticklabels(labels,rotation=-15) ax.set_zlabel('Z') ax.set_zlim3d(0, ys.max()) plt.show() 

introduzca la descripción de la imagen aquí

Entonces, la pregunta es: ¿cómo puedo hacer que las tags de tick se alineen con las posiciones de tick?

Al usar estas alineaciones, obtengo ubicaciones mucho mejores:

 ax.set_yticklabels(labels,rotation=-15, verticalalignment='baseline', horizontalalignment='left') 

He modificado el ejemplo con menos marcadores para que pueda ver la ubicación:

introduzca la descripción de la imagen aquí

Se alinean, pero con la posición horizontal centrada en la marca. Debido a la vista en 3D, esto hace que aparezcan un poco más abajo de lo que esperaría. El efecto no está relacionado con la cantidad de tics, sino con el ancho.

Específicamente establecer la alineación ayudará. Intenta agregar:

 ax.set_yticklabels(labels,rotation=-15, va='center', ha='left') 

Juega un poco con las diferentes alineaciones para ver cuál prefieres, creo que después de has = ‘left’.

Reducir el relleno, la distancia de la garrapata, también podría ayudar.

introduzca la descripción de la imagen aquí