pandas.DataFrame.boxplot
- DataFrame.boxplot(column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, backend=None, **kwargs)[source]
-
Построение диаграммы размаха для столбцов DataFrame.
Построение диаграммы размаха (ящик с усами) для столбцов DataFrame, необязательно с группировкой по другим столбцам. Диаграмма размаха — это метод графического отображения набора числовых данных через их квартили. Ящик простирается от значений квартиля Q1 до Q3, с линией в медиане (Q2). Усы простираются от краев ящика, чтобы показать диапазон данных. По умолчанию они простираются не более чем на 1,5 * IQR (IQR = Q3 - Q1) от краев ящика, заканчиваясь на самом дальнем значении данных в этом интервале. Выбросы изображаются отдельными точками.
Для получения дополнительной информации см. статью Википедии о диаграмме размаха.
- Parameters
-
- column:str или список str, необязательно
-
Имя столбца или список имён, или вектор. Может быть любым допустимым входом для
pandas.DataFrame.groupby(). - by:str или массив-подобный объект, необязательно
-
Столбец в DataFrame для
pandas.DataFrame.groupby(). Одна диаграмма размаха будет построена для каждого значения столбцов в by. - ax:объект класса matplotlib.axes.Axes, необязательно
-
Ось matplotlib, которая должна использоваться для диаграммы размаха.
- fontsize:float или str
-
Размер шрифта меток осей в пунктах или в виде строки (например, large).
- rot:int или float, по умолчанию 0
-
Угол поворота меток (в градусах) относительно системы координат экрана.
- grid:bool, по умолчанию True
-
Установление этого значения в True отобразит сетку.
- figsize:Кортеж (ширина, высота) в дюймах
-
Размер фигуры для создания в matplotlib.
- layout:кортеж (строки, столбцы), необязательно
-
Например, (3, 5) отобразит подграфики, используя 3 столбца и 5 строк, начиная с верхнего левого угла.
- return_type:{‘axes’, ‘dict’, ‘both’} или None, по умолчанию ‘axes’
-
Тип возвращаемого объекта. По умолчанию
axes.‘axes’ возвращает ось matplotlib, на которой построена диаграмма размаха.
‘dict’ возвращает словарь, значениями которого являются объекты matplotlib Lines диаграммы размаха.
‘both’ возвращает кортеж с именами (ось, линии).
-
при группировке с
by, возвращается Series, сопоставляющий столбцы сreturn_type.Если
return_typeравно None, возвращается массив NumPy осей с той же формой, что иlayout.
- backend:str, по умолчанию None
-
Бэкенд, который следует использовать вместо бэкенда, указанного в параметре
plotting.backend. Например, ‘matplotlib’. В качестве альтернативы, чтобы указать бэкендplotting.backendдля всей сессии, установитеpd.options.plotting.backend.В версии 1.0.0.
- **kwargs
-
Все остальные параметры построения графика, передаваемые
matplotlib.pyplot.boxplot().
- Returns
-
- result
-
См. Примечания.
См. также
Series.plot.hist-
Построить гистограмму.
matplotlib.pyplot.boxplot-
Эквивалентная функция построения графика в matplotlib.
Примечания
Тип возвращаемого значения зависит от параметра return_type:
‘axes’ : объект класса matplotlib.axes.Axes
‘dict’ : словарь объектов matplotlib.lines.Line2D
‘both’ : кортеж с именем (ax, lines)
Для сгруппированных данных с
by, возвращается Series вышеупомянутых типов или массив numpy:array(дляreturn_type = None)
Используйте
return_type='dict'при желании изменить внешний вид линий после построения графика. В этом случае возвращается словарь, содержащий линии, образующие ящики, концы, выбросы, медианы и усы.Примеры
Диаграммы размаха можно создавать для каждого столбца в DataFrame,
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'])
Диаграммы размаха распределения переменных, сгруппированные по значениям третьей переменной, могут быть созданы с помощью параметра
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')
Список строк (то есть
['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'])
Макет диаграммы размаха может быть изменен, задав кортеж в
layout:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X', ... layout=(2, 1))
Дополнительный форматирование можно выполнить на диаграмме размаха, например, отключить сетку (
grid=False), повернуть метки на оси x (например,rot=45) или изменить размер шрифта (например,fontsize=15):>>> boxplot = df.boxplot(grid=False, rot=45, fontsize=15)
Параметр
return_typeможет быть использован для выбора типа элемента, возвращаемого boxplot. Когдаreturn_type='axes'выбран, возвращаются оси matplotlib, на которых построена диаграмма размаха:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], return_type='axes') >>> type(boxplot) <class 'matplotlib.axes._subplots.AxesSubplot'>
При группировке с
by, возвращается Series, сопоставляющий столбцы сreturn_type:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X', ... return_type='axes') >>> type(boxplot) <class 'pandas.core.series.Series'>
Если
return_typeравно None, возвращается массив NumPy осей с той же формой, что иlayout:>>> boxplot = df.boxplot(column=['Col1', 'Col2'], by='X', ... return_type=None) >>> type(boxplot) <class 'numpy.ndarray'>
© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.DataFrame.boxplot.html