Intentando acceder a la longitud de una etiqueta de eje matplotlib con este código:
for label in ax.xaxis.get_ticklabels()[1::2]: print(len(label)) Sin embargo, recibo un error de que el objeto no tiene un atributo de longitud. print(label[2]) también falla con un error similar.
No se puede acceder a los objetos de texto de Matplotlib a través de la indexación estándar; lo que está buscando es el get_text() que se encuentra en la documentación del objeto de texto . P.ej
for label in ax.xaxis.get_tick_labels()[1::2]: print(len(label.get_text()))Las label sobre las que está iterando desde get_ticklabels() son objetos matplotlib.text.Text . Para acceder al texto real en ese objeto, puede usar get_text() .
Entonces, algo como esto debería funcionar:
for label in ax.xaxis.get_ticklabels()[1::2]: print(len(label.get_text())) Tenga en cuenta que esta longitud puede incluir caracteres especiales (p. ej., delimitadores latex $ modo matemático), ya que es la longitud de la cadena de texto sin formato