Eu tenho um gráfico de fator simples
import seaborn as sns
g = sns.factorplot("name", "miss_ratio", "policy", dodge=.2,
linestyles=["none", "none", "none", "none"], data=df[df["level"] == 2])
O problema é que todos os rótulos x são executados juntos, tornando-os ilegíveis. Como você gira o texto para que os rótulos fiquem legíveis?
matplotlib
seaborn
dan
fonte
fonte
import matplotlib.pylab as plt
.plt.xticks(rotation=45)
Respostas:
Aman está certo de que você pode usar comandos normais do matplotlib, mas isso também está embutido no
FacetGrid
:Existem alguns comentários e outra resposta alegando que isso "não funciona"; no entanto, qualquer pessoa pode executar o código como está escrito aqui e verificar se ele funciona. A outra resposta não fornece um exemplo reproduzível do que não está funcionando, dificultando a abordagem, mas meu palpite é que as pessoas estão tentando aplicar essa solução à saída de funções que retornam um
Axes
objeto em vez de aFacet Grid
. Essas são coisas diferentes, e oAxes.set_xticklabels()
método realmente exige uma lista de rótulos e não pode simplesmente alterar as propriedades dos rótulos existentes noAxes
. A lição é que é importante prestar atenção em que tipo de objetos você está trabalhando.fonte
ha="right"
para alinhar centralmente os rótulos do eixo x às suas marcas de escala. isto é,g.set_xticklabels([label1, label2], rotation=30, ha='right')
g.set_xticklabels(rotation=30)
parag.set_xticklabels(g.get_xticklabels(), rotation=30)
graças a esta resposta: stackoverflow.com/a/39689464/1870832FacetGrid
objeto, outros retornam umAxes
objeto Matplotlib . Para o primeiro, não definir os rótulos funcionará; para o segundo, não. Você pode ver quais são osFacetGrid
objetos consultando a documentação: seaborn.pydata.org/api.html . Por exemplo, se você usarg = sns.catplot()
isso funcionará, massns.barplot()
não porque retornará umAxes
objeto.Eu tive um problema com a resposta do @mwaskorn, ou seja,
falha, porque isso também requer os rótulos. Um pouco mais fácil do que a resposta de @Aman é apenas adicionar
fonte
g.set_xticklabels(g.get_xticklabels(), rotation=30)
. Atribua-o a uma variável se desejar suprimir a saída.plt.xtics
funcionou para mim.Este ainda é um objeto matplotlib. Tente o seguinte:
fonte
Se alguém se perguntar como fazer isso com o clustermap CorrGrids (parte de um determinado exemplo marítimo):
fonte
Você também pode usar da
plt.setp
seguinte maneira:para girar os rótulos 90 graus.
fonte
Para a
seaborn.heatmap
, você pode alterná-las usando (com base na resposta de @ Aman )fonte
Qualquer plotagem marítima suportada pelo facetgrid não funcionará (por exemplo, catplot)
no entanto, o gráfico de barras, o gráfico de contagem etc. funcionará, pois não são suportados pelo facetgrid. Abaixo irá trabalhar para eles.
Além disso, caso você tenha dois gráficos sobrepostos, tente set_xticklabels no gráfico que o suporta.
fonte