Подтвердить что ты не робот

Как изменить размер фигуры на морском участке?

Как изменить размер моего изображения, чтобы он был подходящим для печати?

Например, я бы хотел использовать бумагу формата А4, размеры которой в альбомной ориентации составляют 11,7 дюйма на 8,27 дюйма.

4b9b3361

Ответ 1

Вам нужно заранее создать объекты 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)

Ответ 2

Вы также можете установить размер фигуры, передав словарь в параметр rc с ключом 'figure.figsize' в методе seaborn set:

import seaborn as sns

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

Другой альтернативой может быть использование figure.figsize для rcParams для установки размера фигуры, как rcParams ниже:

from matplotlib import rcParams

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

Более подробную информацию можно найти в документации по matplotlib.

Ответ 3

Вы можете установить для контекста значение 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')

введите описание изображения здесь

Ответ 4

Обратите внимание, что если вы пытаетесь перейти к методу "на уровне фигуры" в 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 и Plotting with seaborn с использованием объектно-ориентированного интерфейса matplotlib для более подробной информации о том, что методы уровня фигуры не подчиняются спецификациям осей.

Ответ 5

сначала импортируйте matplotlib и используйте его, чтобы установить размер фигуры

from matplotlib import pyplot as plt
import seaborn as sns

plt.figure(figsize=(15,8))
ax = sns.barplot(x="Word", y="Frequency", data=boxdata)

Ответ 6

Для моего сюжета (sns factorplot) предложенный ответ не работает нормально.

Таким образом я использую

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

Сразу после сюжета с Морским борном (поэтому нет необходимости передавать топор морскому морю или менять настройки радиоуправления).

Ответ 7

Это также должно работать.

from matplotlib import pyplot as plt
import seaborn as sns    

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

Ответ 8

Это можно сделать с помощью:

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

Ответ 9

Лучшие ответы Пола Х и Дж. Ли не работают для всех типов морских фигур. Для типа FacetGrid (например, sns.lmplot()) используйте параметр size и aspect.

Size изменяет высоту и ширину, сохраняя пропорции.

Aspect только изменяет ширину, сохраняя высоту постоянной.

Вы всегда можете получить желаемый размер, играя с этими двумя параметрами.

Кредит: fooobar.com/questions/110676/...

Ответ 10

В дополнение к ответу 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)