【问题标题】:seaborn unable to change figsize [duplicate]seaborn无法改变figsize [重复]
【发布时间】:2018-03-05 17:55:37
【问题描述】:

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

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,它总是给我相同的情节大小和一个空情节

【问题讨论】:

    标签: python pandas matplotlib seaborn


    【解决方案1】:

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

    当使用Axis grids 类型的绘图时,seaborn 会自动创建一个图形。解决方法可能是关闭第二个数字。

    【讨论】:

    • 这似乎是一个 hacky 但有效的解决方案,因为显然 ax 参数以某种方式转移到底层轴。我想一旦使用factorplotcolrow 参数,它就会失败?!无论如何,我是否可以建议您将此解决方案添加到重复的问题中,以便人们可以在一个地方找到所有可能的解决方案?
    猜你喜欢
    • 2019-10-28
    • 2021-08-31
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多