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

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


当前回答

一些尝试过的方法:

import seaborn as sns
import matplotlib.pyplot as plt
ax, fig = plt.subplots(figsize=[15,7])
sns.boxplot(x="feature1", y="feature2",data=df) # where df would be your dataframe

or

import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=[15,7])
sns.boxplot(x="feature1", y="feature2",data=df) # where df would be your dataframe

其他回答

# Sets the figure size temporarily but has to be set again the next plot
plt.figure(figsize=(18,18))

sns.barplot(x=housing.ocean_proximity, y=housing.median_house_value)
plt.show()

See How to change the image size for seaborn.objects for a solution with the new seaborn.objects interface from seaborn v0.12, which is not the same as seaborn axes-level or figure-level plots. Adjusting the size of the plot depends if the plot is a figure-level plot like seaborn.displot, or an axes-level plot like seaborn.histplot. This answer applies to any figure or axes level plots. See the the seaborn API reference seaborn is a high-level API for matplotlib, so seaborn works with matplotlib methods Tested in python 3.8.12, matplotlib 3.4.3, seaborn 0.11.2

导入和数据

import seaborn as sns
import matplotlib.pyplot as plt

# load data
df = sns.load_dataset('penguins')

sns.displot

图形级图的大小可以通过高度和/或纵横参数进行调整 此外,图的dpi可以通过访问fig对象并使用.set_dpi()来设置。

p = sns.displot(data=df, x='flipper_length_mm', stat='density', height=4, aspect=1.5)
p.fig.set_dpi(100)

没有p.fig.set_dpi (100)

与p.fig.set_dpi (100)

sns.histplot

轴级图的大小可以通过figsize和/或dpi进行调整

# create figure and axes
fig, ax = plt.subplots(figsize=(6, 5), dpi=100)

# plot to the existing fig, by using ax=ax
p = sns.histplot(data=df, x='flipper_length_mm', stat='density', ax=ax)

没有dpi = 100

dpi = 100

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

因此我使用

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

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

你也可以通过将字典传递给rc参数,键为'figure '来设置图形大小。海运集方法中的Figsize ':

import seaborn as sns

sns.set(rc={'figure.figsize':(11.7,8.27)})

其他的选择可能是使用数字。rcParams的figsize设置图形大小如下:

from matplotlib import rcParams

# figure size in inches
rcParams['figure.figsize'] = 11.7,8.27

更多细节可以在matplotlib文档中找到

这可以使用:

plt.figure(figsize=(15,8))
sns.kdeplot(data,shade=True)