Шаг 113.
Язык Python. Визуализация данных. Библиотека Seaborn. ... . Визуализации распределений категориальных данных. Функция boxplot() (окончание)

    На этом шаге мы рассмотрим примеры использования этой функции.

    Зададим цветовую схему через параметр palette:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd

mpg = sns.load_dataset("mpg")
mpg_mod = mpg[mpg["origin"] != "japan"]

sns.boxplot(x="origin", y="mpg", hue="cylinders", palette='Pastel1',
            data=mpg_mod)

plt.show()
Архив с файлом можно взять здесь.


Рис.1. Демонстрация работы с параметром palette

    Порядок вывода значений основного признака определяется через параметр order, применение цвета - через hue_order. Ориентация диаграммы, также как у всех функций Seaborn, управляется с помощью orient:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd

mpg = sns.load_dataset("mpg")
mpg_mod = mpg[mpg["origin"] != "japan"]

sns.boxplot(x="origin", y="mpg", orient='h', data=mpg_mod)

plt.show()
Архив с файлом можно взять здесь.


Рис.2. Демонстрация работы с параметром orient

    Ширина (или высота, если orient='h') "ящика с усами" задаётся через параметр width. При значении равном 1 ящики занимают все предоставленное пространство, например, если признак принимает только два значения, то все поле графика будет поделено между двумя ящиками, увеличение или уменьшение width изменяет размер ящика:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd

mpg = sns.load_dataset("mpg")
mpg_mod = mpg[mpg["origin"] != "japan"]

plt.figure(figsize=(15, 5))
w_list = [1.25, 1, 0.75, 0.5]
for i, w in enumerate(w_list):
    plt.subplot(1, len(w_list), i + 1)
    sns.boxplot(x="origin", y="mpg", width=w, data=mpg_mod)

plt.show()
Архив с файлом можно взять здесь.


Рис.3. Демонстрация работы с параметром width

    За размер маркеров, обозначающих выбросы, отвечает параметр fliersize:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd

mpg = sns.load_dataset("mpg")
mpg_mod = mpg[mpg["origin"] != "japan"]

plt.figure(figsize=(10, 5))
plt.subplot(121)
sns.boxplot(x="origin", y="mpg", data=mpg_mod)
plt.subplot(122)
sns.boxplot(x="origin", y="mpg", fliersize=10, data=mpg_mod)

plt.show()
Архив с файлом можно взять здесь.


Рис.4. Демонстрация работы с параметром fliersize

    Как было сказано в начале предыдущего шага, вертикальный размер ящика (его высота) равен интервалу между 1-м и 3-м квартилем, полтора таких интервала определяют длину усов, все значения из набора данных, которые больше этого интервала обозначаются как выбросы. За величину межквартильного размаха отвечает параметр whis, проверим, что по умолчанию, это значение равно 1.5:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd

mpg = sns.load_dataset("mpg")
mpg_mod = mpg[mpg["origin"] != "japan"]

plt.figure(figsize=(10, 5))
plt.subplot(121)
sns.boxplot(x="origin", y="mpg", data=mpg_mod)
plt.subplot(122)
sns.boxplot(x="origin", y="mpg", whis=1.5, data=mpg_mod)

plt.show()
Архив с файлом можно взять здесь.


Рис.5. Демонстрация работы с параметром whis=1.5

    Теперь изменим эти величину, построим диаграмму, в которой размах равен двум:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import pandas as pd

mpg = sns.load_dataset("mpg")
mpg_mod = mpg[mpg["origin"] != "japan"]

plt.figure(figsize=(10, 5))
plt.subplot(121)
sns.boxplot(x="origin", y="mpg", data=mpg_mod)
plt.subplot(122)
sns.boxplot(x="origin", y="mpg", whis=2, data=mpg_mod)

plt.show()
Архив с файлом можно взять здесь.


Рис.6. Демонстрация работы с параметром whis=2

    На следующем шаге мы рассмотрим функцию violin().




Предыдущий шаг Содержание Следующий шаг