簡體   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