我有一个简单的因子图
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 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)
其他回答
任何由facetgrid支持的海运图都不能使用(例如catplot)
g.set_xticklabels(rotation=30)
然而,barplot, countplot等将工作,因为它们不支持facetgrid。下面将为他们工作。
g.set_xticklabels(g.get_xticklabels(), rotation=30)
另外,如果您有两个图相互重叠,请尝试set_xticklabels在支持它的graph上。
这仍然是一个matplotlib对象。试试这个:
# <your code here>
locs, labels = plt.xticks()
plt.setp(labels, rotation=45)
您可以在matplotlib Axes对象上使用tick_params方法旋转标记标签。提供一个具体的例子:
ax.tick_params(axis='x', rotation=90)
使用ax.tick_params (labelrotation = 45)。您可以将此应用于图中的坐标轴图,而无需提供标签。这是使用FacetGrid的另一种选择,如果这不是你想要的路径。
可以使用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)
这里有一个例子可以说明它是如何工作的。