matplotlib绘制箱线图修改y轴刻度字体大小时标签消失问题问询
问题原因
调用ax.set_yticklabels(labels=ax.get_yticklabels(), Fontsize=8)时y轴标签消失的核心原因是:matplotlib在图表未完成最终渲染前,调用get_yticklabels()获取到的是无实际文本内容的占位对象,将其作为标签回设后自然无内容显示。同时你代码中参数Fontsize首字母大写属于拼写错误,部分版本matplotlib会忽略该参数不生效。
正确修改方案
方案1:通过tick_params批量设置(最推荐)
不需要手动处理标签内容,直接批量修改y轴刻度标签的字体大小,替换原有ax.set_yticklabels行即可:
ax.tick_params(axis='y', labelsize=8)
如果需要同时调整x轴、刻度线样式、颜色等属性,也可在该方法中增加对应参数实现。
方案2:先获取实际刻度值再设置标签
如果确实需要通过set_yticklabels配置标签,要先拿到y轴的实际刻度值生成标签内容:
# 获取y轴刻度的实际数值 y_ticks = ax.get_yticks() # 用数值转字符串作为标签设置,同时指定字体大小 ax.set_yticklabels(labels=[str(t) for t in y_ticks], fontsize=8)
方案3:遍历标签单独配置
如果需要对单个刻度标签做差异化调整,可以遍历所有y轴标签单独设置字体大小:
for label in ax.get_yticklabels(): label.set_fontsize(8)
内容的提问来源于stack exchange,提问作者DrBwts
相关产品推荐
相关产品推荐

