seaborn 플롯의 그림 크기를 어떻게 변경합니까?
인쇄하기에 적합하도록 이미지의 크기를 어떻게 변경합니까?
예를 들어 가로 방향으로 크기가 11.7 인치 x 8.27 인치 인 A4 용지에 사용하고 싶습니다.
그림의 크기를 지정하여 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
import seaborn as sns
sns.set(rc={'figure.figsize':(11.7,8.27)})
다른 대안은 사용 할 수 figure.figsize
의 rcParams
설정을 아래와 같이 그림의 크기 :
from matplotlib import rcParams
# figure size in inches
rcParams['figure.figsize'] = 11.7,8.27
자세한 내용은 matplotlib 설명서를 참조하십시오
컨텍스트를 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')
Note that if you are trying to pass to a "figure level" method in seaborn (for example lmplot
, catplot
/ factorplot
, jointplot
) you can and should specify this within the arguments using height
and aspect
.
sns.catplot(data=df, x='xvar', y='yvar',
hue='hue_bar', height=8.27, aspect=11.7/8.27)
See https://github.com/mwaskom/seaborn/issues/488 and Plotting with seaborn using the matplotlib object-oriented interface for more details on the fact that figure level methods do not obey axes specifications.
first import matplotlib and use it to set the size of the 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)
For my plot (a sns factorplot) the proposed answer didn't works fine.
Thus I use
plt.gcf().set_size_inches(11.7, 8.27)
Just after the plot with seaborn (so no need to pass an ax to seaborn or to change the rc settings).
This shall also work.
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,16))
sns.countplot(data=yourdata, ...)
This can be done using:
plt.figure(figsize=(15,8))
sns.kdeplot(data,shade=True)
The top answers by Paul H and J. Li do not work for all types of seaborn figures. For the FacetGrid
type (for instance sns.lmplot()
), use the size
and aspect
parameter.
Size
changes both the height and width, maintaining the aspect ratio.
Aspect
only changes the width, keeping the height constant.
You can always get your desired size by playing with these two parameters.
Credit: https://stackoverflow.com/a/28765059/3901029
In addition to elz answer regarding "figure level" methods that return multi-plot grid objects it is possible to set the figure height and width explicitly (that is without using aspect ratio) using the following approach:
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)
참고URL : https://stackoverflow.com/questions/31594549/how-do-i-change-the-figure-size-for-a-seaborn-plot
'Programing' 카테고리의 다른 글
화웨이, logcat이 내 앱의 로그를 표시하지 않습니까? (0) | 2020.06.04 |
---|---|
iTunes는 URL 및 iOS 7을 검토합니다 (사용자에게 앱을 평가하도록 요청) .AppStore에 빈 페이지가 표시됨 (0) | 2020.06.04 |
사이의 Rails ActiveRecord 날짜 (0) | 2020.06.04 |
각도로 파일 업로드? (0) | 2020.06.04 |
문자열로 단어를 대문자로 (0) | 2020.06.04 |