Как изменить фигурирование с использованием морского фактора
%pylab inline
import pandas as pd
import numpy as np
import matplotlib as mpl
import seaborn as sns
typessns = pd.DataFrame.from_csv('C:/data/testesns.csv', index_col=False, sep=';')
mpl.rc("figure", figsize=(45, 10))
sns.factorplot("MONTH", "VALUE", hue="REGION", data=typessns, kind="box", palette="OrRd");
![enter image description here]()
Я всегда получаю маленькую фигуру, независимо от того, какой размер я определил в figsize...
Как это исправить?
Ответы
Ответ 1
Примечание добавлено в 2019 году: в современных версиях Seaborn аргумент size
был переименован в height
.
Чтобы быть немного конкретнее:
%matplotlib inline
import seaborn as sns
exercise = sns.load_dataset("exercise")
# Defaults are size=5, aspect=1
sns.factorplot("kind", "pulse", "diet", exercise, kind="point", size=2, aspect=1)
sns.factorplot("kind", "pulse", "diet", exercise, kind="point", size=4, aspect=1)
sns.factorplot("kind", "pulse", "diet", exercise, kind="point", size=4, aspect=2)
Вы хотите передать аргументы "размер" или "аспект" в sns.factorplot() при построении графика.
Размер изменит высоту при сохранении соотношения сторон (поэтому он также увеличится при изменении только размера).
Аспект изменит ширину, сохраняя постоянную высоту.
Приведенный выше код должен быть в состоянии запускаться локально в записной книжке ipython.
Размеры графиков в этих примерах уменьшены, чтобы показать эффекты, а также потому, что графики из приведенного выше кода были довольно большими при сохранении в формате png. Это также показывает, что размер/аспект включает в себя легенду на полях.
размер = 2, аспект = 1
![size=2, aspect=1]()
размер = 4, аспект = 1
![size=4, aspect=1]()
размер = 4, аспект = 2
![size=4, aspect=2]()
Кроме того, все другие полезные параметры/аргументы и значения по умолчанию для этой функции построения графиков можно просмотреть после загрузки модуля 'sns':
help(sns.factorplot)
Ответ 2
mpl.rc
хранится в глобальном словаре (см. http://matplotlib.org/users/customizing.html).
Итак, если вы хотите изменить размер одной фигуры (локально), она выполнит трюк:
plt.figure(figsize=(45,10))
sns.factorplot(...)
Он работал у меня с помощью matplotlib-1.4.3
и seaborn-0.5.1
Ответ 3
Размер фигуры контролируется аргументами size
и aspect
до factorplot
. Они соответствуют размеру каждой грани ( "size
" действительно означает "высота", а затем size * aspect
дает ширину), поэтому, если вы нацелены на определенный размер для всей фигуры, вам нужно будет работать назад от есть.
Ответ 4
Ответ 5
Если вы просто хотите масштабировать фигуру, используйте приведенный ниже код:
import matplotlib.pyplot as plt
plt.figure(figsize=(8, 6))
sns.factorplot("MONTH", "VALUE", hue="REGION", data=typessns, kind="box", palette="OrRd"); // OR any plot code
Ответ 6
import seaborn as sns
sns.set(rc={'figure.figsize':(12.7,8.6)})
plt.figure(figsize=(45,10))
Выход
Ответ 7
Примечание по состоянию на июль 2018 года:
seaborn.__version__ == 0.9.0
Два основных изменения, которые влияют на вышеуказанные ответы
-
Функция factorplot
была переименована в catplot()
-
Параметр size
был переименован в height
для функций сетки с несколькими участками и тех, которые их используют.
https://seaborn.pydata.org/whatsnew.html
Значение ответа, предоставленного @Fernando Hernandez, должно быть скорректировано, как показано ниже:
%matplotlib inline
import seaborn as sns
exercise = sns.load_dataset("exercise")
# Defaults are hieght=5, aspect=1
sns.catplot("kind", "pulse", "diet", exercise, kind="point", height=4, aspect=2)
Ответ 8
Один из способов может быть также задан размер фигуры, передав словарь в rc
с помощью параметра "figure.figsize" в морском наборе метода:
import seaborn as sns
sns.set(rc={'figure.figsize':(11,8)})