Шаг 108.
Язык Python. Визуализация данных. Библиотека Seaborn. ... . Визуализация категориальных данных в виде точечных диаграмм. Функция stripplot()

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

    Начнём наш обзор с функции stripplot(). Эта функция строит точечную диаграмму. С похожим инструментом - функцией scatterplot(), мы познакомились на 95 шаге. Загрузим набор данных iris и построим простую диаграмму распределения:

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

iris = sns.load_dataset("iris")
sns.stripplot(x='species', y='sepal_length', data=iris)

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


Рис.1. Диаграмма, построенная с помощью функции stripplot()

    Если необходимо построить точечную диаграмму для набора данных, элементы которого представляют собой самостоятельные массивы, то можно их передать напрямую через параметры х, у, не формируя предварительно DataFrame:

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

np.random.seed(321)
x_vals = np.random.randint(3, size=200)
y_vals = np.random.randn(1, len(x_vals))[0]
sns.stripplot(x=x_vals, y=y_vals)

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


Рис.2. Диаграмма, построенная с помощью функции stripplot() по данным, переданным напрямую через параметры x и у

    Для повышения информативности диаграммы можно использовать параметры для настройки цветовой схемы, размера и цвета обводки маркеров.

    Загрузим набор данных tips и выведем пять первых строк с помощью метода pprint(), результат выполнения функции приведён на рисунке 3.


Рис.3. Первые пять строк набора данных tips

    В этом наборе содержатся данные о размерах оставленных чаевых, разделённые по следующим признакам:

    Построим точечный график зависимости размера чаевых (tips) от количества человек в отдыхающей компании (size):

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

tips = sns.load_dataset("tips")
# tips.head()
pprint.pprint(tips)
sns.stripplot(x="size", y='tip', data=tips)

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


Рис.4. Зависимость размера чаевых (tips) от количества человек в отдыхающей компании (size)

    Как вы можете видеть, группы маркеров для разных значений size выделены разными цветами, если необходимо, чтобы цвет использовался один и тот же, то его можно задать через параметр color:

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

tips = sns.load_dataset("tips")
# tips.head()
pprint.pprint(tips)
sns.stripplot(x="size", y='tip', color="g", data=tips)

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


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

    Теперь выделим цветом пол людей, для этого присвоим параметру hue значение sex:

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

tips = sns.load_dataset("tips")
# tips.head()
pprint.pprint(tips)
sns.stripplot(x="size", y='tip', hue="sex", data=tips)

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


Рис.6. Демонстрация использования параметра hue (пример 1)

    Так как 'size' - это вещественный признак, то корректировать для него порядок бессмысленно. Если бы мы построили диаграмму зависимости чаевых от пола клиента, тогда можно было бы задать желаемое представление.

    По умолчанию мы получим следующий результат:

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

tips = sns.load_dataset("tips")
# tips.head()
pprint.pprint(tips)
sns.stripplot(x="time", y='tip', hue="sex", data=tips)

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


Рис.7. Демонстрация использования параметра hue (пример 2)

    Изменим порядок задания цвета:

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

tips = sns.load_dataset("tips")
# tips.head()
pprint.pprint(tips)
sns.stripplot(x="time", y='tip', hue="sex",
              hue_order=['Female', 'Male'], data=tips)

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


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

    На следующем шаге мы закончим изучение этого вопроса.




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