印刷に適したサイズに画像を変更するにはどうすればよいですか。
たとえば、横置きのサイズが11.7インチ×8.27インチのA4用紙を使用します。
Figureの大きさを指定して、matplotlib FigureオブジェクトとAxesオブジェクトを事前に作成する必要があります。
from matplotlib import pyplot
import seaborn
import mylib
a4_dims = (11.7, 8.27)
df = mylib.load_data()
fig, ax = pyplot.subplots(figsize=a4_dims)
seaborn.violinplot(ax=ax, data=df, **violin_options)
また、seabornのrc
メソッドで、キー'figure.figsize'
を使用してset
パラメータにdictionaryを渡すことで、Figureのサイズを設定することもできます。
import seaborn as sns
sns.set(rc={'figure.figsize':(11.7,8.27)})
他の方法としては、rcParams
のfigure.figsize
を使用して、以下のようにFigureのサイズを設定することができます。
from matplotlib import rcParams
# figure size in inches
rcParams['figure.figsize'] = 11.7,8.27
コンテキストをposter
に設定するか、手動でfig_size
を設定することができます。
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
np.random.seed(0)
n, p = 40, 8
d = np.random.normal(0, 2, (n, p))
d += np.log(np.arange(1, p + 1)) * -5 + 10
# plot
sns.set_style('ticks')
fig, ax = plt.subplots()
# the size of A4 paper
fig.set_size_inches(11.7, 8.27)
sns.violinplot(data=d, inner="points", ax=ax)
sns.despine()
fig.savefig('example.png')
Seabornの "figure level"メソッド(例えばlmplot
、catplot
/factorplot
、jointplot
)に渡そうとしているのであれば、height
とaspect
を使ってこれを引数内で指定することができ、またそうすべきです。
sns.catplot(data=df, x='xvar', y='yvar',
hue='hue_bar', height=8.27, aspect=11.7/8.27)
Figureレベルのメソッドが行うことについての詳細は、 https://github.com/mwaskom/seaborn/issues/488 および matplotlibオブジェクト指向インターフェースを使用したseabornによるプロット を参照してください。 Axesの仕様に従わないでください。
まずmatplotlibをインポートし、それを使ってFigureのサイズを設定します。
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,8))
ax = sns.barplot(x="Word", y="Frequency", data=boxdata)
私のプロット(sns factorplot)では、提案された答えはうまくいきませんでした。
従って私は使用します
plt.gcf().set_size_inches(11.7, 8.27)
Seabornでプロットした直後(したがって、axabをseabornに渡したりrc設定を変更したりする必要はありません)。
これも機能します。
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,16))
sns.countplot(data=yourdata, ...)
Paul HとJ. Liによるトップの答えは、あらゆる種類の海兵隊員の数字には当てはまりません。 FacetGrid
型の場合(例えばsns.lmplot()
)、size
およびaspect
パラメーターを使用してください。
Size
は縦横比を維持しながら、高さと幅の両方を変更します。
Aspect
は高さを一定に保ちながら幅を変えるだけです。
あなたはいつでもこれら二つのパラメータで遊ぶことによってあなたの望むサイズを得ることができます。
elzマルチプロットグリッドオブジェクトを返す「図レベル」メソッドに関する回答に加えて、次のアプローチを使用して、フィギュアの高さと幅を明示的に(つまり、アスペクト比を使用せずに)設定できます。
import seaborn as sns
g = sns.catplot(data=df, x='xvar', y='yvar', hue='hue_bar')
g.fig.set_figheight(8.27)
g.fig.set_figheight(11.7)
これは次を使用して実行できます。
plt.figure(figsize=(15,8))
sns.kdeplot(data,shade=True)