Как изменить размер моего изображения, чтобы оно подходило для печати?
Например, я хотел бы использовать для бумаги формата А4, размеры которой составляют 11,7 дюйма на 8,27 дюйма в альбомной ориентации.
Вам нужно заранее создать объекты 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)
sns.lmplot()
height
иaspect
параметров , как описано здесь stackoverflow.com/a/51602446/2412831Вы также можете установить размер фигуры, передав словарь
rc
параметру с ключом'figure.figsize'
вset
методе seaborn :Другой альтернативой может быть использование
figure.figsize
поrcParams
установить размер фигуры , как показано ниже:Более подробную информацию можно найти в документации matplotlib
источник
.set()
раньше.set_style()
Вы можете установить контекст
poster
или установить вручнуюfig_size
.источник
sns.lmplot()
Обратите внимание, что если вы пытаетесь перейти к методу «на уровне фигуры» в seaborn (например
lmplot
,catplot
/factorplot
,jointplot
), вы можете и должны указать это в аргументах, используяheight
иaspect
.См. Https://github.com/mwaskom/seaborn/issues/488 и Plotting with seaborn с использованием объектно-ориентированного интерфейса matplotlib для получения более подробной информации о том, что методы уровня фигуры не подчиняются спецификациям осей.
источник
сначала импортируйте matplotlib и используйте его для установки размера фигуры
источник
Это можно сделать с помощью:
источник
Это также должно работать.
источник
Для моего сюжета (sns factorplot) предложенный ответ не работает нормально.
Таким образом я использую
Сразу после сюжета с Морским борном (поэтому нет необходимости передавать топор морскому морю или менять настройки радиоуправления).
источник
python g = sns.FacetGrid(df.set_index('category'), col="id") pyplot.gcf().set_size_inches(11.7, 8.27) g.map(lambda data, color: data.plot.barh(color=color), "count")
sns.FacetGrid
что нужно установить размер фигуры в соответствии с вычисленным значением (установленным с помощьюheight
иaspect
) и изменить размер фигуры непосредственно после того, как будет работать рисование морского дна. И другая тонкая настройка сюжета может произойти после изменения размера фигурыВ дополнение к ответу elz, касающемуся методов «уровня фигуры», которые возвращают многосюжетные объекты сетки, можно явно установить высоту и ширину фигуры (то есть без использования соотношения сторон), используя следующий подход:
источник
set_figwidth
иset_figheight
хорошо работают для объектов сетки. >>> импорт seaborn >>> импорт matplotlib.pyplot в виде pyplot >>> tips = seaborn.load_dataset ("tips") >>> g = seaborn.FacetGrid (tips, col = "time", row = "smoker") >>> g = g.map (pyplot.hist, "total_bill") >>> g.fig.set_figwidth (10) >>> g.fig.set_figheight (10)Лучшие ответы Пола Х и Дж. Ли не работают для всех типов морских фигур. Для
FacetGrid
типа (напримерsns.lmplot()
), использоватьsize
иaspect
параметр.Size
изменяет высоту и ширину, сохраняя пропорции.Aspect
только изменяет ширину, сохраняя высоту постоянной.Вы всегда можете получить желаемый размер, играя с этими двумя параметрами.
Кредит: https://stackoverflow.com/a/28765059/3901029
источник