繁体   English   中英

以一种常见的方式改变seaborn图和matplotlib库图的大小

[英]changing size of seaborn plots and matplotlib library plots in a common way

from pylab import rcParams
rcParams['figure.figsize'] = (10, 10)

这适用于直方图,但不适用于因子图。 sns.factorplot(.....)仍然显示默认大小。

sns.factorplot('Pclass','Survived',hue='person',data = titanic_df,size = 6,aspect =1)

我必须每次指定大小,方面。

请建议一些适用于全球的东西。

无法通过rcParams更改factorplot的数字大小。

图形大小在FacetGrid类中硬编码

figsize = (ncol * size * aspect, nrow * size)

然后使用此figsize创建一个新图。

这使得无法通过函数调用factorplot的参数之外的其他方式来更改数字大小。 这使得首先用其他参数创建一个图形并将该事实图绘制到该图中也是不可能的。 但是,对于具有单轴的factorplot的解决方法,请参阅@MartinEvans的答案

seaborn的作者在这里辩称 ,这是因为一个factorplot需要完全控制这个数字。

虽然有人可能会质疑是否需要这样,但除了(a)在GitHub站点添加功能请求和/或编写自己的包装器之外,您无能为力,这不会太困难,鉴于seaborn以及matplotlib都是开源的。

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

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

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

df = pd.DataFrame({
    'product' : ['A', 'A', 'A', 'B', 'B', 'C', 'C'], 
    'close' : [1, 1, 0, 1, 1, 1, 0],
    'counts' : [3, 3, 3, 2, 2, 2, 2]})

sns.factorplot(y='counts', x='product', hue='close', data=df, kind='bar', palette='muted', ax=ax)
plt.close(2)    # close empty figure
plt.show()

使用Axis网格类型图时,seaborn将自动创建另一个图形。 解决方法是关闭空的第二个数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM