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

Как изменить фигурирование с использованием морского фактора

%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... Как это исправить?

4b9b3361

Ответ 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

  • Не используйте %pylab inline, он устарел, используйте %matplotlib inline
  • Вопрос не специфичен для IPython.
  • используйте функцию seaborn .set_style, передайте ее вашему rc в качестве второго параметра или kwarg.: http://web.stanford.edu/~mwaskom/software/seaborn/generated/seaborn.set_style.html

Ответ 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

Два основных изменения, которые влияют на вышеуказанные ответы

  1. Функция factorplot была переименована в catplot()

  2. Параметр 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)})