Seaborn无法更改figsize

jxn*_*jxn 1 python matplotlib pandas seaborn

无法更改无花果大小,请参见示例:

df = pd.DataFrame({'subset_product':['A','A','A','B','B','C','C'],
                   'subset_close':[1,1,0,1,1,1,0]})

prod_counts = df.groupby('subset_product').size().rename('prod_counts')
df['prod_count'] = df['subset_product'].map(prod_counts)
g = sns.factorplot(y='prod_count',x='subset_product',hue='subset_close',data=df,kind='bar',palette='muted',legend=False,ci=None)
plt.rcParams["figure.figsize"] = [20,10]
plt.legend(loc='best')
Run Code Online (Sandbox Code Playgroud)

尽管改变了Figsize,它总是给我相同的绘图大小和一个空的绘图

在此输入图像描述

Mar*_*ans 5

可以通过首先创建图形和轴并将其作为参数传递给seaborn图来修改图形大小:

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns       


fig, ax = plt.subplots(figsize=(20, 10))

df = pd.DataFrame({'subset_product':['A','A','A','B','B','C','C'],
                   'subset_close':[1,1,0,1,1,1,0]})

prod_counts = df.groupby('subset_product').size().rename('prod_counts')
df['prod_count'] = df['subset_product'].map(prod_counts)
g = sns.factorplot(y='prod_count', x='subset_product', hue='subset_close', data=df, kind='bar', palette='muted', legend=False, ci=None, ax=ax)
plt.close(2)    # close empty figure
plt.show()
Run Code Online (Sandbox Code Playgroud)

当使用轴网格类型图时,seaborn 将自动创建一个图形。解决方法可能是关闭第二个数字。