pandas.plotting.boxplot#

pandas.plotting.boxplot(данные, столбец=None, by=None, ax=None, размер шрифта=None, rot=0, сетка=True, figsize=None, layout=None, return_type=None, **kwargs)[источник]#

Создать диаграмму размаха из столбцов DataFrame.

Построить диаграмму размаха (ящик с усами) из столбцов DataFrame, опционально сгруппированных по другим столбцам. Диаграмма размаха — это метод графического отображения групп числовых данных через их квартили. Ящик простирается от значений квартилей Q1 до Q3 данных, с линией на медиане (Q2). Усы простираются от краев ящика, чтобы показать диапазон данных. По умолчанию они простираются не более чем 1.5 * IQR (IQR = Q3 - Q1) от краев коробки, заканчиваясь на самой дальней точке данных в этом интервале. Выбросы отображаются как отдельные точки.

Для получения дополнительной информации см. статью в Википедии для boxplot.

Параметры:
данныеDataFrame

Данные для визуализации.

столбецstr или список str, необязательно

Имя столбца или список имен, или вектор. Может быть любым допустимым вводом в pandas.DataFrame.groupby().

bystr или array-like, необязательный

Столбец в DataFrame для pandas.DataFrame.groupby(). Один график box-plot будет построен для каждого значения столбцов в by.

axобъект класса matplotlib.axes.Axes, опционально

Оси matplotlib, используемые для boxplot.

размер шрифтаfloat или str

Размер шрифта меток делений в пунктах или в виде строки (например, большой).

rotfloat, по умолчанию 0

Угол поворота меток (в градусах) относительно системы координат экрана.

сеткаbool, по умолчанию True

Установка этого значения в True покажет сетку.

figsizeКортеж (ширина, высота) в дюймах

Размер создаваемой фигуры в matplotlib.

layoutкортеж (строки, столбцы), опционально

Например, (3, 5) отобразит подграфики используя 3 строки и 5 столбцов, начиная с верхнего левого угла.

return_type{‘axes’, ‘dict’, ‘both’} или None, по умолчанию ‘axes’

Тип объекта для возврата. По умолчанию axes.

  • ‘axes’ возвращает оси matplotlib, на которых нарисована диаграмма размаха.

  • ‘dict’ возвращает словарь, значениями которого являются matplotlib линии boxplot.

  • ‘both’ возвращает именованный кортеж с осями и словарём.

  • при группировке с by, Series, сопоставляющая столбцы с return_type возвращается.

    Если return_type является None, массив NumPy осей с той же формой, что и layout возвращается.

**kwargs

Все остальные аргументы для построения графиков, которые должны быть переданы в matplotlib.pyplot.boxplot().

Возвращает:
результат

См. Примечания.

Смотрите также

pandas.Series.plot.hist

Построить гистограмму.

matplotlib.pyplot.boxplot

Эквивалентный график Matplotlib.

Примечания

Тип возвращаемого значения зависит от return_type параметр:

  • 'axes' : объект класса matplotlib.axes.Axes

  • ‘dict’ : словарь объектов matplotlib.lines.Line2D

  • ‘both’ : namedtuple со структурой (ax, lines)

Для данных, сгруппированных с by, возвращает Series из вышеуказанного или numpy-массив:

  • Series

  • array (для return_type = None)

Используйте return_type='dict' когда вы хотите настроить внешний вид линий после построения графика. В этом случае возвращается словарь, содержащий линии, составляющие коробки, крышки, выбросы, медианы и усы.

Примеры

Боксплоты могут быть созданы для каждого столбца в датафрейме путем df.boxplot() или указании столбцов для использования:

>>> np.random.seed(1234)
>>> df = pd.DataFrame(np.random.randn(10, 4),
...                   columns=['Col1', 'Col2', 'Col3', 'Col4'])
>>> boxplot = df.boxplot(column=['Col1', 'Col2', 'Col3'])  
../../_images/pandas-plotting-boxplot-1.png

Боксплоты распределений переменных, сгруппированных по значениям третьей переменной, могут быть созданы с использованием опции by. Например:

>>> df = pd.DataFrame(np.random.randn(10, 2),
...                   columns=['Col1', 'Col2'])
>>> df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A',
...                      'B', 'B', 'B', 'B', 'B'])
>>> boxplot = df.boxplot(by='X')
../../_images/pandas-plotting-boxplot-2.png

Список строк (т.е. ['X', 'Y']) можно передать в boxplot для группировки данных по комбинации переменных на оси x:

>>> df = pd.DataFrame(np.random.randn(10, 3),
...                   columns=['Col1', 'Col2', 'Col3'])
>>> df['X'] = pd.Series(['A', 'A', 'A', 'A', 'A',
...                      'B', 'B', 'B', 'B', 'B'])
>>> df['Y'] = pd.Series(['A', 'B', 'A', 'B', 'A',
...                      'B', 'A', 'B', 'A', 'B'])
>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by=['X', 'Y'])
../../_images/pandas-plotting-boxplot-3.png

Макет boxplot можно настроить, передав кортеж в layout:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      layout=(2, 1))
../../_images/pandas-plotting-boxplot-4.png

Дополнительное форматирование может быть применено к boxplot, например, подавление сетки (grid=False), вращая метки на оси x (т.е. rot=45) или изменение размера шрифта (т.е. fontsize=15):

>>> boxplot = df.boxplot(grid=False, rot=45, fontsize=15)  
../../_images/pandas-plotting-boxplot-5.png

Параметр return_type можно использовать для выбора типа элемента, возвращаемого boxplot. Когда return_type='axes' выбран, возвращаются оси matplotlib, на которых нарисована диаграмма размаха:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], return_type='axes')
>>> type(boxplot)

При группировке с by, Series, сопоставляющая столбцы с return_type возвращается:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      return_type='axes')
>>> type(boxplot)

Если return_type является None, массив NumPy осей с той же формой, что и layout возвращается:

>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X',
...                      return_type=None)
>>> type(boxplot)