dan
tengo un diagrama de factores simple
import seaborn as sns
g = sns.factorplot("name", "miss_ratio", "policy", dodge=.2,
linestyles=["none", "none", "none", "none"], data=df[df["level"] == 2])
El problema es que las etiquetas x se ejecutan juntas, lo que las hace ilegibles. ¿Cómo rotas el texto para que las etiquetas sean legibles?
Tuve un problema con la respuesta de @mwaskorn, a saber, que
g.set_xticklabels(rotation=30)
falla, porque esto también requiere las etiquetas. Un poco más fácil que la respuesta de @Aman es simplemente agregar
plt.xticks(rotation=45)
-
También puedes obtener las etiquetas así.
g.set_xticklabels(g.get_xticklabels(), rotation=30)
. Asígnelo a una variable si desea suprimir la salida.– joelostblom
7 de febrero de 2016 a las 3:43
-
Creo que esto es correcto, al configurar
plt.xtics
trabajó para mi.– muamar
29 de agosto de 2018 a las 18:56
-
Cuando pruebo esto, mis xticklabels ya no están alineados con los x ticks. ¿Alguien sabe por qué?
– Rylan Schaefer
8 abr 2021 a las 22:37
-
Recomiendo agregar también
plt.tight_layout()
para que los márgenes se ajusten al texto– ovnis
25 oct 2021 a las 13:26
-
g.set_xticklabels(rotation=30)
trabaja enFacetGrid
ahora– ovnis
5 de noviembre de 2021 a las 17:08
mwaskom
Puede rotar las etiquetas de marca con el tick_params
método en matplotlib Axes
objetos. Para proporcionar un ejemplo específico:
ax.tick_params(axis="x", rotation=90)
Este sigue siendo un objeto matplotlib. Prueba esto:
# <your code here>
locs, labels = plt.xticks()
plt.setp(labels, rotation=45)
No funcionará ninguna trama marina compatible con facetgrid (por ejemplo, catplot)
g.set_xticklabels(rotation=30)
sin embargo, barplot, countplot, etc. funcionarán ya que no son compatibles con facetgrid. A continuación funcionará para ellos.
g.set_xticklabels(g.get_xticklabels(), rotation=30)
Además, en caso de que tenga 2 gráficos superpuestos uno encima del otro, pruebe set_xticklabels en el gráfico que lo admita.
Si alguien se pregunta cómo hacer esto para clustermap CorrGrids (parte de un ejemplo marino dado):
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(context="paper", font="monospace")
# Load the datset of correlations between cortical brain networks
df = sns.load_dataset("brain_networks", header=[0, 1, 2], index_col=0)
corrmat = df.corr()
# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(12, 9))
# Draw the heatmap using seaborn
g=sns.clustermap(corrmat, vmax=.8, square=True)
rotation = 90
for i, ax in enumerate(g.fig.axes): ## getting all axes of the fig object
ax.set_xticklabels(ax.get_xticklabels(), rotation = rotation)
g.fig.show()
Robvh
También puedes usar plt.setp
como sigue:
import matplotlib.pyplot as plt
import seaborn as sns
plot=sns.barplot(data=df, x=" ", y=" ")
plt.setp(plot.get_xticklabels(), rotation=90)
para rotar las etiquetas 90 grados.
serv-inc
Para seaborn.heatmap
puede rotarlos usando (basado en la respuesta de @Aman)
pandas_frame = pd.DataFrame(data, index=names, columns=names)
heatmap = seaborn.heatmap(pandas_frame)
loc, labels = plt.xticks()
heatmap.set_xticklabels(labels, rotation=45)
heatmap.set_yticklabels(labels[::-1], rotation=45) # reversed order for y
Esto me ayudó: stackoverflow.com/questions/74715767/…
–Jimmy Carter
17 de febrero a las 1:44
Para
seaborn.objects
con v0.12vea Cómo rotar los xticks con seaborn.objects–Trenton McKinney
1 jun a las 19:50