Answers:
阿曼(Aman)是正确的,您可以使用普通的matplotlib命令,但这也内置于FacetGrid
:
import seaborn as sns
planets = sns.load_dataset("planets")
g = sns.factorplot("year", data=planets, aspect=1.5, kind="count", color="b")
g.set_xticklabels(rotation=30)
有一些评论和另一个答案声称此“无效”,但是,任何人都可以按照此处编写的代码运行,并查看它是否有效。对方的回答并没有提供什么不工作,从而解决这一问题很难重复的例子,但我的猜测是,人们正试图将此解决方案的返回函数的输出的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/1870832
FacetGrid
对象,一些返回Matplotlib Axes
对象。对于前者,不设置标签将起作用,而对于后者,它将不起作用。FacetGrid
通过查看文档,您可以查看哪些对象:seaborn.pydata.org/api.html。例如,如果您使用g = sns.catplot()
此方法将起作用,但sns.barplot()
不会成功,因为它返回一个Axes
对象。
我对@mwaskorn的答案有疑问,即
g.set_xticklabels(rotation=30)
失败,因为这也需要标签。比@Aman的答案要简单一点,就是添加
plt.xticks(rotation=45)
g.set_xticklabels(g.get_xticklabels(), rotation=30)
。如果要抑制输出,请将其分配给变量。
plt.xtics
对我有用时,我认为这是正确的。
如果有人想知道如何对集群图CorrGrids进行此操作(给定的seaborn示例的一部分):
import seaborn as sns
import matplotlib.pyplot as plt
sns.set(context="paper", font="monospace")
# Load the datset of correlations between cortical brain networks
df = sns.load_dataset("brain_networks", header=[0, 1, 2], index_col=0)
corrmat = df.corr()
# Set up the matplotlib figure
f, ax = plt.subplots(figsize=(12, 9))
# Draw the heatmap using seaborn
g=sns.clustermap(corrmat, vmax=.8, square=True)
rotation = 90
for i, ax in enumerate(g.fig.axes): ## getting all axes of the fig object
ax.set_xticklabels(ax.get_xticklabels(), rotation = rotation)
g.fig.show()
对于seaborn.heatmap
,您可以使用(根据@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
import matplotlib.pylab as plt
。plt.xticks(rotation=45)