我有一个简单的因子图

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

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


当前回答

使用ax.tick_params (labelrotation = 45)。您可以将此应用于图中的坐标轴图,而无需提供标签。这是使用FacetGrid的另一种选择,如果这不是你想要的路径。

其他回答

对于一个海上出生的孩子来说。热图,你可以旋转这些(基于@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

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

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

使用ax.tick_params (labelrotation = 45)。您可以将此应用于图中的坐标轴图,而无需提供标签。这是使用FacetGrid的另一种选择,如果这不是你想要的路径。

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

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

可以使用matplotlib.pyplot.xticks实现这一点

import matplotlib.pyplot as plt

plt.xticks(rotation = 'vertical')

# Or use degrees explicitly 

degrees = 70  # Adjust according to one's preferences/needs
plt.xticks(rotation=degrees)

这里有一个例子可以说明它是如何工作的。