You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter使用seaborn.catplot绘制小提琴图设置plt.figure大小出现0轴提示

seaborn catplot调整画布尺寸不生效问题解决

问题原因

sns.catplot() 是seaborn的Figure级接口,调用时会自动创建独立的新画布,你提前通过plt.figure()声明的画布不会被catplot复用,这个提前创建的空画布没有任何绘图内容,才会输出Figure size with 0 Axes的提示,最终展示的是catplot默认参数创建的画布,所以尺寸调整不生效。

解决方法

方法1:直接通过catplot的参数设置画布属性

直接把尺寸、dpi参数传给catplot即可,Figure级接口用height(单张子图高度,单位英寸)和aspect(宽高比=宽度/高度)控制尺寸,总宽度 = height × aspect。要实现16×10英寸、dpi=80的效果,写法如下:

sns.catplot(x=" ", y=" ", hue=" ", kind="violin", split=True, data=data,
            height=10, # 高度设为10英寸
            aspect=1.6, # 宽高比1.6,总宽度=10*1.6=16英寸
            dpi=80)
plt.show()

方法2:获取catplot返回的FacetGrid对象后调整尺寸

如果需要后续动态调整画布,也可以拿到catplot返回的对象后,修改画布属性:

g = sns.catplot(x=" ", y=" ", hue=" ", kind="violin", split=True, data=data)
# 调整画布尺寸
g.fig.set_size_inches(16, 10)
# 调整dpi
g.fig.set_dpi(80)
plt.show()

内容的提问来源于stack exchange,提问作者didadidaaaaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:24:03