我如何改变我的图像的大小,使其适合打印?

例如,我想使用A4纸,它的尺寸是11.7英寸乘8.27英寸。


当前回答

Paul H和J. Li给出的最重要的答案并不适用于所有类型的海上人物。对于FacetGrid类型(例如ssn .lmplot()),使用size和aspect参数。

大小同时改变高度和宽度,保持纵横比。

Aspect只改变宽度,保持高度不变。

您总是可以通过使用这两个参数来获得您想要的大小。

来源:https://stackoverflow.com/a/28765059/3901029

其他回答

对于我的图(一个sns因子图),建议的答案并不能很好地工作。

因此我使用

plt.gcf().set_size_inches(11.7, 8.27)

就在与seaborn的情节之后(所以不需要传递一个斧头给seaborn或改变rc设置)。

这也会起作用。

from matplotlib import pyplot as plt
import seaborn as sns    

plt.figure(figsize=(15,16))
sns.countplot(data=yourdata, ...)

除了elz回答关于返回多图网格对象的“图形级别”方法外,还可以使用以下方法显式设置图形的高度和宽度(即不使用纵横比):

import seaborn as sns 

g = sns.catplot(data=df, x='xvar', y='yvar', hue='hue_bar')
g.fig.set_figwidth(8.27)
g.fig.set_figheight(11.7)

Paul H和J. Li给出的最重要的答案并不适用于所有类型的海上人物。对于FacetGrid类型(例如ssn .lmplot()),使用size和aspect参数。

大小同时改变高度和宽度,保持纵横比。

Aspect只改变宽度,保持高度不变。

您总是可以通过使用这两个参数来获得您想要的大小。

来源:https://stackoverflow.com/a/28765059/3901029

您可以将上下文设置为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')