我使用以下方法创建了一个绘图:
g = sns.catplot(x='loja', y='preco', col='Descr. Grupo', col_wrap=3, capsize=.2, height=4, aspect=1.2,
kind='point', sharey=False, data=df_long)
此图构建了10个网格,但只有最后3个网格具有我想要的xticklabels
。
我们可以这样看:
for ax in g.axes:
print(ax.get_xticklabels())
<a list of 0 Text major ticklabel objects>
<a list of 0 Text major ticklabel objects>
<a list of 0 Text major ticklabel objects>
<a list of 0 Text major ticklabel objects>
<a list of 0 Text major ticklabel objects>
<a list of 0 Text major ticklabel objects>
<a list of 0 Text major ticklabel objects>
<a list of 3 Text major ticklabel objects>
<a list of 3 Text major ticklabel objects>
<a list of 3 Text major ticklabel objects>
由于列loja
有3个不同的类别,我希望每个网格有3 xticklabels
所以我试着这样做:
for ax in g.axes:
ax.set_xticklabels(['a', 'b', 'c'], visible=True, rotation=0)
现在xticklabels
被创建了,但是有一个意想不到的行为:标签也出现在每个网格的顶部
如何仅保留每个网格底部的xticklabels
设置
ax.tick_params(labelbottom=True)
似乎可以解决这个问题。可能需要plt.subplots_adjust(...)
加宽一些填充物相关问题 更多 >
编程相关推荐