使用seaborn distplot设置直方图尺寸报错:意外关键字参数figsize
解决
sns.distplot()中figsize参数报错的问题 嘿,这个问题我之前也踩过坑!sns.distplot()确实不支持figsize这个参数——因为figsize是Matplotlib画布(Figure)的专属参数,并不是Seaborn distplot函数的参数,所以直接传进去才会报“意外关键字参数”的错误。
给你两种实用的解决办法:
方法一:先创建指定尺寸的Matplotlib画布,再绘图
先通过Matplotlib的plt.figure()创建一个指定大小的画布,之后再调用distplot绘图,所有绘图内容都会自动适配这个画布尺寸:
import matplotlib.pyplot as plt import seaborn as sns # 初始化画布,设置宽20、高8 plt.figure(figsize=(20, 8)) # 绘制直方图 sns.distplot(MSoft['pct_change'].dropna(), bins=100, color='magenta') # 显示图像 plt.show()
方法二:改用Seaborn官方推荐的displot()函数(更推荐)
需要注意的是,distplot()已经被Seaborn官方标记为弃用了,未来版本可能会移除。官方推荐用displot()替代,这个函数支持通过height(高度)和aspect(宽高比)来控制图的尺寸:
import seaborn as sns # 要达到figsize=(20,8)的效果,aspect = 宽度/高度 = 20/8 = 2.5 sns.displot(MSoft['pct_change'].dropna(), bins=100, color='magenta', height=8, aspect=2.5)
这样设置后,生成的图宽度就是8*2.5=20,和你想要的尺寸完全一致,同时还能避免弃用函数带来的后续兼容问题。
内容的提问来源于stack exchange,提问作者user7057659
相关产品推荐
相关产品推荐

