如何调整Altair箱线图中旋转后的列标签位置?
解决Altair 4.2.2分组箱线图列标签旋转后位置偏移问题
针对你遇到的旋转90度后列标签位置不对的问题,可以通过调整列头的对齐方式、基线和padding参数来修正,具体修改后的代码如下:
import seaborn as sns import altair as alt tips = sns.load_dataset("tips") tips = tips.replace('Sun', 'Sunday morning') chart = alt.Chart(tips).mark_boxplot(ticks=True).encode( x=alt.X("smoker:O", title=None, axis=alt.Axis(labels=False, ticks=False), scale=alt.Scale(padding=1)), y=alt.Y("total_bill:Q"), color="smoker:N", column=alt.Column( 'day:N', sort=['Thur','Fri','Sat','Sunday morning'], header=alt.Header( labelAngle=-90, labelAlign='right', labelBaseline='middle', labelPadding=30, # 可根据图表高度微调这个值 title=None # 移除默认的"day"列标题 ) ) ).properties( width=80, height=350 ).configure_view( stroke=None )
关键参数说明:
labelAlign='right':让旋转后的标签文本右对齐,贴合对应子图的底部边缘labelBaseline='middle':保证旋转后的文本垂直居中,避免上下偏移labelPadding=30:调整标签与子图底部的垂直间距,替代原来的负数值(旋转后padding方向改变,正数值才能正确拉开间距)title=None:移除默认生成的列组标题,避免干扰布局
如果标签位置仍有偏差,只需微调labelPadding的数值即可适配你的图表尺寸。
内容的提问来源于stack exchange,提问作者Rodrigo
相关产品推荐
相关产品推荐

