我有一个简单的因子图

import seaborn as sns
g = sns.factorplot("name", "miss_ratio", "policy", dodge=.2, 
    linestyles=["none", "none", "none", "none"], data=df[df["level"] == 2])

问题是x标签都在一起,使它们不可读。如何旋转文本以使标签可读?


当前回答

我对@mwaskorn的回答有一个问题,即

g.set_xticklabels(rotation=30)

失败,因为这也需要标签。比@Aman的答案更简单的是添加

plt.xticks(rotation=45)

其他回答

如果标签的名字很长,可能很难正确。使用catplot对我来说很有效的解决方案是:

import matplotlib.pyplot as plt
fig = plt.gcf()
fig.autofmt_xdate()

你也可以用plt。步骤如下:

import matplotlib.pyplot as plt
import seaborn as sns

plot=sns.barplot(data=df,  x=" ", y=" ")
plt.setp(plot.get_xticklabels(), rotation=90)

将标签旋转90度。

我对@mwaskorn的回答有一个问题,即

g.set_xticklabels(rotation=30)

失败,因为这也需要标签。比@Aman的答案更简单的是添加

plt.xticks(rotation=45)

您可以在matplotlib Axes对象上使用tick_params方法旋转标记标签。提供一个具体的例子:

ax.tick_params(axis='x', rotation=90)

这仍然是一个matplotlib对象。试试这个:

# <your code here>
locs, labels = plt.xticks()
plt.setp(labels, rotation=45)