我如何改变我的图像的大小,使其适合打印?
例如,我想使用A4纸,它的尺寸是11.7英寸乘8.27英寸。
我如何改变我的图像的大小,使其适合打印?
例如,我想使用A4纸,它的尺寸是11.7英寸乘8.27英寸。
当前回答
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
其他回答
请注意,如果您试图传递给seaborn中的“图形级”方法(例如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)
请参阅https://github.com/mwaskom/seaborn/issues/488和使用matplotlib面向对象接口使用seaborn进行绘图,以获得关于图形级方法不遵守轴规范的更多详细信息。
Paul H和J. Li给出的最重要的答案并不适用于所有类型的海上人物。对于FacetGrid类型(例如ssn .lmplot()),使用size和aspect参数。
大小同时改变高度和宽度,保持纵横比。
Aspect只改变宽度,保持高度不变。
您总是可以通过使用这两个参数来获得您想要的大小。
来源:https://stackoverflow.com/a/28765059/3901029
一些尝试过的方法:
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
这也会起作用。
from matplotlib import pyplot as plt
import seaborn as sns
plt.figure(figsize=(15,16))
sns.countplot(data=yourdata, ...)
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