У меня простой факторплот
import seaborn as sns
g = sns.factorplot("name", "miss_ratio", "policy", dodge=.2,
linestyles=["none", "none", "none", "none"], data=df[df["level"] == 2])
Проблема в том, что все метки x работают вместе, что делает их нечитаемыми. Как вы поворачиваете текст, чтобы метки были читабельными?
import matplotlib.pylab as plt
,plt.xticks(rotation=45)
Ответы:
Аман прав, что вы можете использовать обычные команды matplotlib, но это также встроено в
FacetGrid
:Есть некоторые комментарии и другой ответ, утверждающий, что это «не работает», однако, любой может запустить код, как написано здесь, и увидеть, что он работает. Другой ответ не дает воспроизводимый пример того , что не работает, что делает его очень трудно адрес, но я думаю, что люди пытаются применить это решение на выходе функций , которые возвращают в
Axes
объект вместоFacet Grid
. Это разные вещи, иAxes.set_xticklabels()
метод действительно требует списка меток и не может просто изменить свойства существующих меток вAxes
. Урок в том, что важно обращать внимание на то, с какими объектами вы работаете.источник
ha="right"
для выравнивания по центру надписей по оси X и их отметок. то естьg.set_xticklabels([label1, label2], rotation=30, ha='right')
g.set_xticklabels(rotation=30)
чтобыg.set_xticklabels(g.get_xticklabels(), rotation=30)
благодаря этому ответу: stackoverflow.com/a/39689464/1870832FacetGrid
объект, некоторые возвращаютAxes
объект Matplotlib . Для первых не работает установка меток, для вторых - нет. Вы можете увидеть, какиеFacetGrid
объекты являются объектами, просмотрев документацию: seaborn.pydata.org/api.html . Например, если вы используетеg = sns.catplot()
это будет работать, ноsns.barplot()
не будет, потому что он возвращаетAxes
объект.У меня была проблема с ответом @mwaskorn, а именно, что
терпит неудачу, потому что это также требует меток. Чуть проще, чем ответ @Aman - просто добавить
источник
g.set_xticklabels(g.get_xticklabels(), rotation=30)
. Присвойте его переменной, если хотите подавить вывод.plt.xtics
работала на меня.Это все еще объект matplotlib. Попробуй это:
источник
Если кому-то интересно, как это сделать для кластерной карты CorrGrids (часть данного примера с Seaborn):
источник
Вы также можете использовать
plt.setp
следующее:повернуть метки на 90 градусов.
источник
Для
seaborn.heatmap
, вы можете повернуть их, используя (на основе ответа @ Aman )источник
Любые морские участки, поддерживаемые Facetgrid, не будут работать (например, catplot)
однако barplot, countplot и т. д. будут работать, так как они не поддерживаются facetgrid. Ниже будет работать на них.
Кроме того, если у вас есть 2 графика, наложенные друг на друга, попробуйте set_xticklabels на графике, который поддерживает это.
источник