2014-10-02 97 views
31
%pylab inline 

import pandas as pd 
import numpy as np 
import matplotlib as mpl 
import seaborn as sns 

typessns = pd.DataFrame.from_csv('C:/data/testesns.csv', index_col=False, sep=';') 

mpl.rc("figure", figsize=(45, 10)) 
sns.factorplot("MONTH", "VALUE", hue="REGION", data=typessns, kind="box", palette="OrRd"); 

enter image description here如何改變figuresize使用seaborn factorplot

我總是得到一個小尺寸的身影,不管大小我在figsize已經指定... 如何解決呢?

回答

44

是一個小更具體:

%matplotlib inline 

import seaborn as sns 

exercise = sns.load_dataset("exercise") 

# Defaults are size=5, aspect=1 
sns.factorplot("kind", "pulse", "diet", exercise, kind="point", size=2, aspect=1) 
sns.factorplot("kind", "pulse", "diet", exercise, kind="point", size=4, aspect=1) 
sns.factorplot("kind", "pulse", "diet", exercise, kind="point", size=4, aspect=2) 

要在爭論「尺寸」或「方面」傳遞到sns.factorplot()構建的情節時。

尺寸將改變高度,同時保持縱橫比(所以它也將也如果僅僅大小被改變得到更寬。)

看點將改變寬度,同時保持高度恆定。

上面的代碼應該可以在ipython筆記本上本地運行。

在這些示例中,繪圖大小會減少以顯示效果,並且因爲以png的形式保存的上述代碼的繪圖相當大。這也表明尺寸/方面包括邊緣的圖例。

尺寸= 2,縱橫= 1

size=2, aspect=1

大小= 4,方面= 1

size=4, aspect=1

大小= 4,方面= 2

size=4, aspect=2

此外,出於這一繪圖功能的所有其它有用的參數/參數和默認值可與一旦「SNS」模塊被加載看到:

help(sns.factorplot) 
+0

這是唯一適用於我的解決方案。嘗試所有其他人,即使沒有錯誤,該數字仍然顯示爲默認大小和方面(小和方形)。 – szeitlin 2016-10-05 15:44:47

4

該圖的大小由sizeaspect參數控制爲factorplot。它們對應於每個方面的尺寸(「size」的確意思是「高度」,然後size * aspect給出了寬度),所以如果您針對整個圖形的特定尺寸瞄準,則需要從那裏向後工作。

+0

我使用matplotlib和Seaborn,所以道歉的愚蠢的問題的第一天,但​​什麼是'mpl.rc( 「人物」,figsize =(45,10))'好那麼,如果不控制數字的大小呢?我也看到了這裏使用的同樣的'mpl.rc'代碼:https://github.com/mwaskom/seaborn/issues/112 - 並且它不會改變我的地塊的大小。 – slhck 2015-03-20 15:54:46

+0

請參閱https://github.com/mwaskom/seaborn/issues/444 – mwaskom 2015-03-20 19:27:12

17

mpl.rc被存儲在全局字典(見http://matplotlib.org/users/customizing.html)。 所以,如果你只是想改變一個圖(局部)的大小,它會做的伎倆:

plt.figure(figsize=(45,10)) 
sns.factorplot(...) 

它的工作我使用matplotlib-1.4.3seaborn-0.5.1

+1

爲我工作,直到我尊重你的順序,'plt.figure'必須先走。謝謝 – Overdrivr 2016-10-05 09:12:13

+0

確實對我有用。 hrmm – ansonw 2017-04-04 20:43:24

+0

在這種情況下,您還需要'import matplotlib.pyplot as plt' – psychemedia 2017-04-12 11:32:55

0

如果你只是想縮放的圖使用下面的代碼:

import matplotlib.pyplot as plt 
plt.figure(figsize=(8, 6)) 
sns.factorplot("MONTH", "VALUE", hue="REGION", data=typessns, kind="box", palette="OrRd"); // OR any plot code