cómo rotar xticks en un eje de figura en matplotlib sin “obtener” las tags como una lista

Supongamos que tengo el siguiente código que crea una figura de matplotlib con dos ejes, el segundo de los cuales tiene tags de eje x como fechas:

import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt import datetime as dt x1 = np.arange(0,30) x2 = pd.date_range('1/1/2016', periods=30, freq='D') y1 = np.random.randn(30) y2 = np.random.randn(30) %matplotlib inline fig, ax = plt.subplots(1,2, figsize=(18,5)) ax[0].scatter(x1,y1) ax[1].scatter(x2,y2) 

mostrar esto en un cuaderno de ipython mostrará las tags del eje x del gráfico de la derecha al coincidir unas con otras. Me gustaría rotar las tags para mejorar la visibilidad. toda la documentación y la búsqueda en línea parecen sugerir una de las siguientes 2 opciones (ambas después de la última línea anterior):

# 1

 plt.setp(ax[1].xaxis.get_majorticklabels(),rotation=90,horizontalalignment='right') 

o # 2

 plt.xticks(rotation=90) 

cualquiera de estos funcionará pero también imprimirá una lista de tags (que por alguna razón es diferente en el primer ejemplo que en el segundo)

¿Cómo puedo lograr la rotación / visualización sin dar salida a una matriz?

Pude usar este enfoque. No estoy seguro de si es la forma más elegante, pero funciona sin generar una matriz.

 for tick in ax[1].get_xticklabels(): tick.set_rotation(90) 

Un poco tarde, así que para futuras referencias:

Los cuadernos Jupyter siempre imprimen el valor de retorno del último comando en una celda. Simplemente suprimiría esto agregando otra función o statement que no devuelva nada, en lugar de buscar una solución para la función real a la que desea llamar.

Para que pudieras hacer:

 plt.xticks(rotation=90) pass 

o:

 plt.xticks(rotation=90) plt.show() 

En Jupyter, también puedes oprimir un punto y coma al final de un comando y suprimirá la salida. Esto es útil para trazar gráficos sin imprimir los datos devueltos:

 plt.xticks(rotation=90);