Python seaborn无法更改figsize

Python seaborn无法更改figsize,python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,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'].ma

无法更改图的大小,请参见示例:

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')
尽管改变了figsize,但它总是给我相同的绘图大小和一个空绘图


首先创建图形和轴,并将其作为参数传递给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()

使用类型图时,seaborn将自动创建地物。解决方法是关闭第二个地物。

可以通过首先创建地物和轴并将其作为参数传递给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()

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

这似乎是一个老套但有效的解决方案,因为显然
ax
参数以某种方式转移到了底层轴。我猜一旦使用了
factorplot
col
row
参数,它就会失败?!在任何情况下,我可以建议您将此解决方案添加到重复问题中,这样人们就可以在一个地方找到所有可能的解决方案吗?这似乎是一个老套但有效的解决方案,因为显然,
ax
参数以某种方式转移到了底层轴。我猜一旦使用了
factorplot
col
row
参数,它就会失败?!在任何情况下,我是否可以建议您将此解决方案添加到重复问题中,以便人们可以在一个地方找到所有可能的解决方案?